WordPress アクションフックのタイミング

WP関数『wp_insert_post』に含まれるアクションフックは5つあります。

『pre_post_update』
↓
『edit_post』
↓
『post_updated』
↓
『save_post』
↓
『wp_insert_post』

の順に行われます。

そのため、『save_post』のときにupdate_post_meta()を実行すると、『wp_insert_post』の際に$_POSTの内容をもとに変更されてしまうため、 update_post_meta()によるカスタムフィールドの値が更新されません。

update_post_meta()を実行するためには、『wp_insert_post』に記入するようにしましょう。