在POST保存/更新时何时触发SAVE_POST挂接

时间:2019-07-10 作者:Krzysztof Chodera

在我的插件中,我想每次都更新站点地图pagepost 已创建/修改。为了实现这一点,我使用save_post 挂钩:

add_action( \'save_post\', \'update_sitemap\', 10, 3);
创建/保存/更新/删除任何page 我的回调方法update_sitemap 但当我创建/保存/更新/删除任何post 它似乎没有启动回调update_sitemap 立即

我对自定义帖子类型进行了测试,它的工作方式与页面一样。

当我添加两个新的常规帖子时,回调方法被调用一次。只有在第二篇文章的任何进一步修改回调被激发之后。

这是预期的行为save_post

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

save_postwp_insert_post() 这是在插入或更新帖子时运行的核心功能(wp_update_post() 内部调用)。这包括何时通过经典编辑器和块编辑器(Gutenberg)更新帖子,以及何时通过RESTAPI更新帖子。它不会触发的唯一原因是,如果帖子是通过SQL直接更新的(通过插件或其他方式),或者只有帖子元是通过函数更新的。

因此,不,这不是预期的行为。如果您的函数没有启动,则可能是来自其他主题或插件的干扰,或者可能是函数本身的问题,但问题中没有足够的信息来说明这两种方式。

相关推荐

WooCommerce在Orders列表的Bulk Actions下拉列表中添加一个新的Bulk Actions

我试图在WooCommerce订单列表中添加一个自定义批量操作,这将是我为单个订单编写的一段代码,但需要使其递归工作。我知道:Custom bulk_action 但它指的是wordpress批量操作菜单,而不是专门针对woocommerce的。你能帮我在我的woocommerce订单列表插件中运行它吗?此外,我还对如何在添加该操作后扫描要检查的订单并仅对所选订单应用批量操作感到有点困惑。