transition_post_status
フックを使用して特定の条件が満たされない場合、私はページが公開されないようにしようとしています。しかしWP_DIE
は投稿が公開されるのを止めません。
function check_post_limit( $new_status, $old_status, $post ) {
if($new_status == 'publish'){
wp_die();
}
}
add_action( 'transition_post_status', 'check_post_limit', 10, 3 );
`
投稿が公開された後にwp_die();
が実行されます。投稿が公開されているかどうかを確認しています。つまり、投稿は既に公開されています。 wp_die();
を使用する代わりに、投稿ステータスを公開から下書きに更新することができます。次のコードはそれを行います:
function check_post_limit( $ID, $post ) {
$post = array( 'ID' => $ID, 'post_status' => 'draft' );
wp_update_post($post);
}
add_action( 'publish_post', 'check_post_limit', 10, 2 );