在我的插件中,我想每次都更新站点地图page 或post 已创建/修改。为了实现这一点,我使用save_post
挂钩:
add_action( \'save_post\', \'update_sitemap\', 10, 3);
创建/保存/更新/删除任何
page 我的回调方法
update_sitemap
但当我创建/保存/更新/删除任何
post 它似乎没有启动回调
update_sitemap
立即
我对自定义帖子类型进行了测试,它的工作方式与页面一样。
当我添加两个新的常规帖子时,回调方法被调用一次。只有在第二篇文章的任何进一步修改回调被激发之后。
这是预期的行为save_post
钩
最合适的回答,由SO网友:Jacob Peattie 整理而成
save_post
在wp_insert_post()
这是在插入或更新帖子时运行的核心功能(wp_update_post()
内部调用)。这包括何时通过经典编辑器和块编辑器(Gutenberg)更新帖子,以及何时通过RESTAPI更新帖子。它不会触发的唯一原因是,如果帖子是通过SQL直接更新的(通过插件或其他方式),或者只有帖子元是通过函数更新的。
因此,不,这不是预期的行为。如果您的函数没有启动,则可能是来自其他主题或插件的干扰,或者可能是函数本身的问题,但问题中没有足够的信息来说明这两种方式。