Wordpress,无法更新post_name

时间:2017-05-20 08:15:34

标签: wordpress

根据文档,我的代码应该有效:

$my_post = array(
  'ID'           => 12345,
  'post_title'   => 'This is the new post title.',
  'post_name'    => 'and-this-the-new-name',
);

wp_update_post( $my_post );

但它并不完全有效;与名称不同,标题确实发生了变化。

我已停用所有插件,以确保没有任何异物可能影响我正在做的事情。

我正在运行最新版本的WordPress。

可能是因为我创建了状态为pending的帖子吗?

根据其他人的说法,我应该在创建帖子时将状态设置为publish

但我无法承担这一责任,因为我需要在发布帖子之前设置post_name

我可能做错了什么,我该如何解决?

我交叉检查:

插入状态=发布的帖子 - > post_name自动设置。

然后做了以下事情:

$update_args =  array (
  'ID'        => 12345,
  'post_status' => 'pending',
  'post_name' => 'try-again-my-own-name',
);
wp_update_post($update_args );

结果:状态设置为待处理,但 post_name现在为空。

1 个答案:

答案 0 :(得分:0)

wp_update_post()是wp_insert_post()的包装器。

如果你看一下reference here,就会明白为什么它会清除你的post_name:

// Don't allow contributors to set the post slug for pending review posts.
if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) ) {
    $post_name = '';
}