为什么wp_is_POST_Revision总是FALSE?

时间:2015-05-13 作者:Caio Mars

我正在尝试保存自定义帖子类型的修订。这是我必须检查帖子是否有家长的地方:

function save_revision( $post ) {

    if ( $post[\'submitted\'] == true ) {
       $parent_id = wp_is_post_revision( $post[\'post_id\'] );
       ...
    }
} add_action(\'init\', \'save_revision\');
问题是,对于$parent\\u id,我总是得到false,即使我知道该post\\u id有一个父post。

非常感谢您的帮助,我一直在努力让这一切永远奏效。

2 个回复
SO网友:Jillian Hoenig

我知道这是一个老话题,但为了将来的参考,Wordpress中的“修订”一词有点令人困惑。这不是最新、最新或最新修订的帖子。。。但是旧版本。最新版本是“父级”

如果调用函数wp_is_revision_post() 在当前版本的帖子上,它将始终返回false (和wp_get_post_parent_id() 将返回NULL) 因为目前的职位不被视为“修订版”您需要在实际版本上调用它(该版本的ID与当前版本的帖子不同)。

SO网友:cybmeta

很简单:如果$post 不是修订版,wp_is_post_revision() 返回false;只需读取函数的名称即可给出原因。wp_is_post_revision() 仅当给定帖子是修订版(修订版始终具有父帖子)时,才返回父帖子ID。似乎要获取的父帖子ID为$post, 不检查是否$post 是修订版。

要获取另一个帖子的父帖子ID,请使用wp_get_post_parent_id():

function save_revision( $post ) {

    if ( $post[\'submitted\'] == true ) {
       $parent_id = wp_get_post_parent_id( $post[\'post_id\'] );
       ...
    }
}
add_action(\'init\', \'save_revision\');

结束

相关推荐

How to delete post revisions?

我没有设置修订数量的限制,这使得我的一些帖子有20多个修订,那么如何删除这些修订呢?顺便说一下,我正在使用WPMU,并且有很多博客,那么如何删除我所有博客的WordPress修订版呢?