WordPress、投稿をゴミ箱に入れた時に処理を追加したい。

wordpressはアクションフックさせることで様々なイベントが起こる時にアクションを追加することができます。

ここにたくさん載っています→アクションフックたち

ここで今回は投稿をゴミ箱に捨てるアクションフックについて考えてみましょう。

ゴミ箱に捨てるアクションフックに使えるものは2つあります 1. trash_post -ある投稿がゴミ箱に捨てる際にフックされた関数が呼び出される 2. trashed_post -ある投稿がゴミ箱に捨てられたあとにフックされた関数が呼び出される

この2つ、ちょっとしか違わないようにように見えますが、前者では削除したい投稿もまだ生き残っているので

$args ={
     "post_status" => "publish"
}
get_posts($args)

などを実行すると、今まさに削除しようとしている投稿のIDまで返ってきてしまします。

フックしたい関数で行いたい処理をよく考えて適切な方を選びましょう。

なお投稿をゴミ箱から元に戻す際にフックされるアクションにも 1. untrash_post 2. untrashed_post があります。これも同様に今まさに復元しようとしている投稿のIDがpost_statusのpublishに含まれたり含まれなかったりするので気をつけてください。