保存帖子后,Wordpress挂钩

时间:2018-01-30 16:21:55

标签: php wordpress

我一直在寻找并找到了很多不同的答案,但是,我还没有找到明确的答案。

我需要在完成保存到数据库的帖子后立即运行一个函数。这包括帖子的每个方面,包括post metas。我试图挂钩到save_post,但似乎在保存post metas之前运行我的函数。我也尝试了post_updated和updated_postmeta,但我的函数似乎没有在其中任何一个上运行。

另外需要注意的是,我需要访问我的函数中的帖子ID。

编辑,我的插件使用高级自定义字段插件,我编码的函数使用update_field创建新的帖子元数据或根据某些内容更新现有的帖子元素。这段代码有效。当我在post_updated钩子上运行该函数时,函数似乎运行但没有任何反应。如果我将die()添加到我的函数的末尾,我的代码可以正常工作,但是死会杀死页面,我留下的只是一个空白页面,位于url wp-admin / post.php。所以添加模具可以让我的功能工作,我不知道为什么没有死就不行。

3 个答案:

答案 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

https://developer.wordpress.org/reference/hooks/the_post/

答案 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似乎确实运行了。我的问题实际上来自我的代码中的其他内容,我可以通过更改处理脚本的这一部分来解决这个问题。