Open2

WordPress/Tips

vanshivanshi

WordPressの特定の関数を使うと、内部でアクションフックが紐づいて動く

関数 アクションフック 発火タイミング 渡されるパラメータ
wp_update_post() pre_post_update 投稿がデータベースに保存される前
save_post 投稿がデータベースに保存された後 $post_ID, $post, $update
wp_insert_post 投稿がデータベースに保存された後 (wp_insert_post() 内で) $post_ID, $post, $update
update_post_meta() updated_post_meta メタデータが更新された後 $meta_id, $object_id, $meta_key, $_meta_value
update_post_metadata メタデータが更新される前 -
vanshivanshi

アクションフックのsave_postを使うと、なぜか2回実行される。
おそらくSCFプラグインとかでリビジョンをONにしていると、実行される??
防ぐためには以下のようにアーリーリターンする

// 自動保存とリビジョン更新の場合実行しない、または画面上での操作ではない場合は実行しない
    if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id) || !isset($_POST['smart-custom-fields']['requiresRevision'][0])) {
        return;
    }