我一直在寻找并找到了很多不同的答案,但是,我还没有找到明确的答案。
我需要在完成保存到数据库的帖子后立即运行一个函数。这包括帖子的每个方面,包括post metas。我试图挂钩到save_post,但似乎在保存post metas之前运行我的函数。我也尝试了post_updated和updated_postmeta,但我的函数似乎没有在其中任何一个上运行。
另外需要注意的是,我需要访问我的函数中的帖子ID。
编辑,我的插件使用高级自定义字段插件,我编码的函数使用update_field创建新的帖子元数据或根据某些内容更新现有的帖子元素。这段代码有效。当我在post_updated钩子上运行该函数时,函数似乎运行但没有任何反应。如果我将die()添加到我的函数的末尾,我的代码可以正常工作,但是死会杀死页面,我留下的只是一个空白页面,位于url wp-admin / post.php。所以添加模具可以让我的功能工作,我不知道为什么没有死就不行。
答案 0 :(得分:0)
我会评论你的帖子,但我不能,因为我没有50个代表。
你的意思是the_post? https://codex.wordpress.org/Plugin_API/Action_Reference/the_post
function my_the_post_action( $post_object ) {
// modify post object here
}
add_action( 'the_post', 'my_the_post_action' );
它应该有帖子ID
答案 1 :(得分:0)
好的,我找到了如何让publish_post
工作。
对于自定义帖子类型,您需要更换"帖子"通过post type slug。
自定义帖子类型示例" Recipe"与"食谱"蛞蝓。
add_action('publish_recipe', 'test_publish_post', 10, 2);
function test_publish_post($post_id, $post){
wp_die($post_id);
}
不要忘记wp_die()
或die()
; 否则您将被重定向,但您无法看到var_dump();
答案 2 :(得分:0)
我能够 解决我的问题。事实证明,在保存post metas之后,save_post似乎确实运行了。我的问题实际上来自我的代码中的其他内容,我可以通过更改处理脚本的这一部分来解决这个问题。