全局$POST对象上的POST_TITLE为空

时间:2012-03-16 作者:ltfishie

我的插件使用publish\\u post挂钩获取帖子数据并进行一些处理:

add_action(\'publish_post\', \'publish_post\');

function publish_post($post_id) {
      global $post, $blog_id;
      $author = get_userdata ($post->post_author);
      $title = $post->post_title;
      //some processing here...
}
我注意到,对于一篇新文章,$title始终为空,而所有其他字段都可用。如果我再次发布帖子(更新),那么标题将可用。

Edit

我打印了$post变量,并注意到post\\u状态为draft:

[post_title] =>
[post_excerpt] =>
[post_status] => draft
因此$post变量似乎包含从数据库加载的内容,但不包含当前屏幕上的内容。我应该如何获得反映屏幕上当前内容的$帖子?是否有在帖子保存到数据库后触发的挂钩?

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

这个钩子的名字是这样的:

do_action("{$new_status}_{$post->post_type}", $post->ID, $post);
我猜您应该使用作为秒传递的数据$post 参数,而不是全局。

因此:

add_action(\'publish_post\', \'publish_post\', 10, 2 );

function publish_post($post_id, $post) {

    // stuff

结束

相关推荐