每次用户手动保存帖子时,我都需要触发一个函数(所以只有通过“更新按钮”)。
以下是我所拥有的:
add_action( \'save_post\', \'my_save_post_function\', 10, 3 );
function my_save_post_function($object_id, $post, $updated) {
$post = get_post($object_id);
$post_ID = $object_id;
if(!wp_doing_ajax() && count($_REQUEST) > 2){
if($post->post_type == "incsub_event" && $_POST["action"] = "editpost")
{ /* do stuff*/ }
}
问题:这个函数被触发了两次(我可以看到,由于我在do stuff中的代码,一切都被复制了)。
似乎第一次是在用户单击链接时触发的,第二次(可能?)元数据更新后。
我怎么能只触发一次?
PS:尝试使用钩子“post\\u updated”(不更新我的元数据)和“update\\u post\\u metadata”(触发两次)
就我而言,我使用的是ACF。
ACF提供了一个钩子,它完全满足我的要求,但仅适用于ACF字段:
add_action( \'acf/save_post\', \'my_save_post_function\', 15 );
function my_save_post_function($object_id) { /* do stuff */ }