WordPressで初回投稿時だけアクションを起こす

WordPressで記事を初回投稿した時だけツイッターやフェイスブックにつぶやきたい、みたいなことがあると思います。

しかしWordPressで予め用意されているpublish_postなどのフックでは新規投稿時だけでなく他の記事ステータス変更時にも反応してしまいます。

そこで、

add_action( 'publish_post', 'sample_post' ,10 , 2);
function sample_post( $post_id , $post ){

	if( $post->post_date != date('Y-m-d H:i:s') ) return ;
	
	//~~新規投稿時の処理~~

}

こんな感じで$post->post_dateと現在時刻が一致していれば、としてあげると新規投稿かどうかを判定できます。

この例では新規投稿じゃなかった場合は処理をスルーすることで、新規投稿時のみ処理が行われるようにしました。

簡単にできそうなんですが、意外にこの問題に悩まされました。

ページの先頭へ