GOODTABLE鎌倉オープン
GOODTABLE鎌倉オープン
2012.04.05

wordpressでよく使った管理画面用アクションフック

づや

いつも忘れて調べるので、最近使ったのをまとめます。

やりたかったのは特定の条件の記事が公開されたときに、特殊な処理をして、
非公開、削除になっても特殊な処理をしたいって感じです。

・publish_post
投稿が公開になったときに呼ばれます。
引数は投稿IDです。

// アクションの登録
 add_action( 'publish_post' , 'pub_post_method');

 funtion pub_post_method(ID){
    // 記事のIDを使ってあれこれする処理
 }

・deleted_post
投稿が削除された時に呼ばれます。
引数は投稿IDです。

// アクションの登録
 add_action( 'deleted_post' , 'del_post_method');

 funtion del_post_method(ID){
    // 記事のIDを使ってあれこれする処理
 }

でも、ゴミ箱にいれただけでは呼ばれない。

・transition_post_status
投稿のステータスが変更された際に呼ばれます。
引数は投稿IDです。

// アクションの登録
 add_action( 'transition_post_status' , 'tran_post_method');

 funtion tran_post_method(ID){
    // 記事のIDを使ってあれこれする処理
 }

投稿系の処理はこいつの中で、post_statusを見て、処理するのが一番いい気がします。
publish_postもdel_post_methodも使わくて済みました。
2.2以下だとないみたいです。

ついでに、クラスの関数を使いたい場合は下記のように。

// インスタンスを作っておく
  $obj = new MyClass();

  // アクションの登録
  add_action( 'transition_post_status' , array($obj , 'tran_post_method'));

これで、MyClassのtran_post_method関数が呼ばれます。