ちょっと調べることがあり、WordPress のコードをトレースしていたら、save_post_{$post_type} フックというものがあることを知りました。
投稿や固定ページが作成または更新された際(データがデータベースに保存された後)のフックとしては、WordPress Codex には save_post と wp_insert_post フックが載っていますが、この save_post_{$post_type} フックは載っていません。
WordPress 3.7 より追加されていたようだが、全く知らなかった。
今まで、
function my_save_post( $post_id, $post ) {
if( $post->post_type === 'page' ) {
// TODO: ここに処理を追加します。
}
}
add_action( 'save_post', 'my_save_post' );
のような記述をしていましたが、
function my_save_post_page( $post_ID, $post ) {
// TODO: ここに処理を追加します。
}
add_action( 'save_post_page', 'my_save_post_page' );
と、コードもスッキリするし無駄なアクションもなくなります。
たまにはコードを眺めるのも良いものです。新しい発見があり面白いです。