我的插件使用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变量似乎包含从数据库加载的内容,但不包含当前屏幕上的内容。我应该如何获得反映屏幕上当前内容的$帖子?是否有在帖子保存到数据库后触发的挂钩?
最合适的回答,由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