web-dev-qa-db-ja.com

投稿ステータスが変更されたときにカスタム機能を実行するにはどうすればよいですか?

いくつかの要件を満たすためにtrash_postedit_postprivate_to_publishなどのそれぞれにカスタム関数をフックすることができますが、 'ドラフトへの保留' 'ドラフトへのプライベート'などのより可能性のある遷移も確認する必要があります。 等々。

この存在しない機能に似たもの:

if( post_status_changed($post_id) ) {
    my_custom_function();
}
3
Max Yudin

このコーデックスページ を参照してください。一般的にフックは{old_status}_to_{new_status}です。 (未テスト)しかしあなたの場合、フックはpending_to_draftになります。

 add_action('pending_to_draft','wpse45803_pending_to_draft');
 function wpse45803_pending_to_draft($post){
  //Do something
 }

wp_transition_post_status 関数を調べたいと思うかもしれません。フックを使うこともできます:transition_post_status

 add_action('transition_post_status','wpse45803_transition_post_status',10,3);
 function wpse45803_transition_post_status($new_status,$old_status,$post){
  //Do something
 }
14
Stephen Harris