web-dev-qa-db-ja.com

投稿が公開されないようにする

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 );

`

1
frank astin

投稿が公開された後に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 );
1
Jack Johansson