如何使用PUBLISH_POST、NEW_TO_PUBLISH等挂钩获取帖子ID

时间:2012-04-29 作者:pliomn

我有两个插件,一个使用函数wp\\u insert\\u post(),另一个有如下代码:

add_action(\'future_to_publish\', \'myFunc\', 10, 1);
add_action(\'new_to_publish\', \'myFunc\', 10, 1);
add_action(\'draft_to_publish\', \'myFunc\', 10, 1);

function myFunc( $postID ) {

}
当第一个插件运行wp\\u insert\\u post()时,$postID始终为空。如果我使用挂钩“publish\\u post”并按update,那么$postID确实有一个值,那么我做错了什么?

3 个回复
SO网友:Ralf912

阅读Codex,function in the core file,

function myFunc( $post ) {

    $postID = $post->ID;

}
post传输不发送post ID,而是发送完整的post对象。有时是一个简单的die(var_dump($postID)); (或用作参数的任何内容)有助于找出将发送到回调的内容。如果不知道向回调发送了多少个参数,请将die(var_dump(func_get_args())); 在回拨的第一行。

SO网友:Val

function myFunc( $post ) {
    global $post;
    $myPostId = $post->ID;

    //your function here

}
要获取$postID值,只需插入global $post 函数中的表达式。这对我有用。

SO网友:Mohit Bumb

wp_insert_posts() 成功返回帖子ID。值0或WP_Error 发生故障时。

$postId = wp_insert_post($args);
if(!$postId){
echo "Your post is not inserted that\'s why you\'ve no post id :p"
}

结束

相关推荐

Invalid Taxonomy

因此,我注册了一个自定义帖子类型以及该帖子类型的分类法。然后,我在该分类法中创建了两个项目,但当我单击其中任何一个时,发现它们是无效的分类法。下面是我用来创建自定义帖子类型+分类法的代码。我有一个插件。class GW_Guides_Post_Type { public function __construct() { $this->register_post_type(); $this->metaboxes();