カスタム投稿タイプのゴミ箱/削除アクションを管理する必要があります。
私はいくつかの条件をチェックし、私がCPTを捨てるべきかどうかを決める必要があります。
ごみ箱関数の前に起動されるwp_trash_actionフックは、ごみ箱プロシージャをキャンセルするオプションを私に与えません。
より具体的には、ユーザーがTRASHを押したときの状態を確認する必要があります。その条件が偽なら、私はゴミ捨て行為を止める必要があります。それが本当なら、それは続けるべきです。
擬似コード例のように、trashed_post
にフックし、wp_untrash_post()
を使用して条件を満たしたときに逆にします。
add_action('trashed_post', 'wpse_218031_trashed_post');
function wpse_218031_trashed_post($post_id){
//use post_id to check conditions... if not met call:
if ( $some_condition ) {
wp_untrash_post($post_id);
}
}
trashed_post
は、wp_trash_post
の後、投稿がゴミ箱に移動された後に実行されます。
ちなみに、定数EMPTY_TRASH_DAYS
が定義されていてfalse
であれば、投稿は永久に削除され、それ以降のフックは起動されません。その場合は代わりにwp_delete_post()
が呼び出されます。