在TRANSPORT_POST_STATUS挂接中获取新的(不是旧的)POST

时间:2014-06-22 作者:SPi

跟踪票据\'transition_post_status\' is executed before \'save_post\', 我还在为如何访问new $post (保存后)在transition_post_status 钩现在,我正在获取旧的$post数据(在保存之前)。

示例:

add_action(\'transition_post_status\',\'myfunc\',10,3);
function myfunc($new_status,$old_status,$post){

 if ( $new_status == \'publish\' && $old_status != \'publish\') {
 // a post is getting published

    if(!check_my_post($post->ID)){ //how can I get the saved/new post here?
           ...
        // do something     
    }     
  }    
 }
改变优先顺序没有任何区别。

有什么办法可以做到这一点吗?

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

According to the Codex, 如果您使用wp_transition_post_status() 您将获得旧版本和新版本。

 wp_transition_post_status( $new_status, $old_status, $post ) 
票证还指出,为了使保存生效,post类型需要支持修订。

在执行任何操作之前,请检查post对象的post类型。

如果您的帖子类型支持修订,那么您会看到这两个操作都会触发两次——转换然后为修订保存,转换然后为帖子保存。

您是否可以使用wp_transition_post_status()? 你是否确保你的职位类型supports revisions?

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴