如何检测到SAVE_POST挂钩正在调用仅与当前编辑帖子页面相关联的回调

时间:2021-03-11 作者:Álvaro Franz

我正在使用save\\u post挂钩处理通过admin edit post页面完成的帖子中的更新。

但由于我有十多种自定义帖子类型,因此当我保存所有帖子时,与其中每一个相关联的save\\u帖子都会被触发。

如果save post回调与当前编辑屏幕不对应,我想向将返回的函数添加一个提前返回。

详情如下:

function save_post_type_WHATEVER1{
    if(not editing whatever1 cpt){
    return;
    }
}

function save_post_type_WHATEVER2{
    if(not editing whatever2 cpt){
    return;
    }
}
但我不知道我能在if(not editing whatever2 cpt){ 达到预期的行为。

我看到URL包含?post=x 参数如果我这样做就足够了吗:

function save_post_type_WHATEVER2{
    if(get_post_type($_GET[\'post\'])!=\'whatever2\'){
    return;
    }
}
还是会变成另一种问题?

非常感谢。

1 个回复
最合适的回答,由SO网友:Raba 整理而成

连接到save_post 每当你保存帖子时,钩子就会运行。这是预期的行为。

你应该用钩子save_post_{$post->post_type} 指定回调与哪个post类型关联。这样,只有在保存类型为的帖子时才会调用它{$post->post_type}

请参见hook documentation

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在