使用wp_INSERT_POST_DATA将作者自动分配给新帖子

时间:2018-03-24 作者:Michael Rogers

我需要为所有人设置默认作者new posts 已选中,但保留现有帖子不变。

因此,由于默认的帖子状态是“草稿”,我认为只有当帖子是这样的草稿时,才可以这样做:

add_filter( \'wp_insert_post_data\' , \'update_author\', \'99\', 2 );

function update_author($data , $postarr) {
if ($postarr[\'post_status\'] == \'draft\') {
    $data[\'post_author\'] = 45;
 }
  return $data;
}
但它从来没有运行过,所以我尝试了另一种方法。当它没有被“发布”时,但它会运行于所有新的和现有的帖子中。。。

add_filter( \'wp_insert_post_data\' , \'update_author\', \'99\', 2 );

function update_author($data , $postarr) {      
 if ($postarr[\'post_status\'] != \'published\') {       
    $data[\'post_author\'] = 45;
 }
  return $data;
}
我错过了什么?

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

要知道这是不是一篇新文章,你只需要阅读$postarr["ID"] :

$postType = "post";

add_filter("wp_insert_post_data" . $postType, function ($data, $postarr) {

    if (0 === $postarr["ID"]) { // it\'s a new post

        $data["post_author"] = 45;

    }


    return $data;


}, 10, 2);

结束

相关推荐

在新窗口中打开_Author_link()

我需要多看一眼。我在商业主题函数中自定义了一段代码,代码如下: <div class=\"author-description\"> <h5><span class=\"fn\"><?php the_author_link(); ?></span></h5> <p class=\"note\"><?php the_author_meta( \'descriptio