我试图在用户发布新帖子时从全局$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
}
}
最合适的回答,由SO网友:fuxia 整理而成
的第三个参数transition_post_status
是post对象。使用它。
add_action( \'transition_post_status\', \'dostuff\', 10, 3 );
function dostuff( $new_status, $old_status, $post ) {
}
当有疑问时,不要使用globals。它们不可靠,使您的代码难以测试和阅读。