首次发布时无法从$POST获取内容

时间:2014-10-19 作者:player.mdl

我试图在用户发布新帖子时从全局$post变量中获取标题和内容(提交到外部web服务,而外部web服务又需要传回附加数据以添加到帖子中)。

到目前为止,我尝试使用的挂钩(“transition\\u post\\u status”和“publish\\u post”)似乎都在运行before 帖子将插入到数据库中。每次我的代码试图从$post读取数据时,这都会导致一个空字符串,就像(我假设?)这个变量是从Wordpress数据库中获取的,并且由于新的帖子是适用的,因此数据库中还没有存储任何内容。

有可以开火的钩子吗after 帖子的状态被转换为我可以挂接函数的状态?或者,是否可以通过PHP从TinyMCE编辑器获取文章标题和内容?

非常感谢您的帮助!

我目前所处环境的示例:

add_action(\'transition_post_status\',\'dostuff\',10,2);

function dostuff( $new_status, $old_status ) {
    if ($new_status == \'publish\' && $old_status != \'publish\') {
        global $post;
        $content = $post-> post_title . "\\n" . $post->post_content; //Title and content are empty :(
        //Do more stuff with $content
    }
}

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

的第三个参数transition_post_status 是post对象。使用它。

add_action( \'transition_post_status\', \'dostuff\', 10, 3 );

function dostuff( $new_status, $old_status, $post ) {
}
当有疑问时,不要使用globals。它们不可靠,使您的代码难以测试和阅读。

SO网友:matr07

我还无法发表评论,因为我觉得这可能比发布实际答案更合适,以防上面的代码输入错误,但您的台词:

$content = $post-> post_title . "\\n" . $post->post_content; //Title and content are empty :(
可能产生错误,因为$post->post\\U标题之间有空格。应该是这样的

`$post->post_title`
(“->”后无空格)

结束

相关推荐