Open2
WordPress/Tips
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 |
メタデータが更新される前 | - |
アクションフックの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;
}