在发布后立即访问发布元数据

时间:2015-08-03 作者:Christian O.

下面的代码应该将最近发布的帖子的post meta存储到变量$temp中。但事实并非如此,$temp始终为空。这似乎是因为“transition\\u post\\u status”在元信息存储到数据库之前触发。

有没有一个钩子可以让我获得我刚刚发布的帖子的帖子元?

function myfunction($new_status, $old_status, $post) {
     if ($post->post_status !== "publish" ) {
       return; }

     $temp = get_post_meta($post->ID);
     // do something with post meta information
}
add_action(\'transition_post_status\', \'myfunction\', 10, 3);

1 个回复
SO网友:denis.stoyanov

以下是transition_post_status 抄本:

<罢工>

此函数的访问标记为private. 这意味着它不适用于插件和主题开发人员,而只适用于其他核心功能。为了完整起见,这里列出了它。请改用这些函数中的任何一个

为什么不使用publish_post 改为采取行动?There is a nice article + example 在你案件的法典里。每当发布帖子时,它都会发送一封电子邮件,并发送帖子数据。

Edit 1: 正如@Pieter Goosen所指出的,我已经研究了不同的函数(_transition_post_status() 而不是钩子transition_post_status). 请不要理会我关于它的描述的帖子。抱歉搞混了!

结束

相关推荐

WP_PUBLISH_POST断开固定链接

我正在创建一个系统,其中正在准备一些自定义的帖子草稿,在版主采取某些操作后,它将自动发布。因此,首先,我创建如下的后期草稿:$newpost = array( \'post_title\' => \'Raport \'.date(\"Y-m-d\"), \'post_content\' => \'Add your content here\', \'post_type\' => \'raport\', \'