如何使用pre_get_posts和post__in

时间:2018-08-22 13:21:06

标签: wordpress

我想在查询中使用pre_get_posts。我的代码如下:

public static function getAuthorArticles($query) {

  if ($query->is_author() && $query->is_main_query()):
    $author = get_user_by('slug', get_query_var( 'author_name' ));
    $authorID = $author->ID;
    $authorPostIDs = self::getAuthorsPostIDs($authorID);
    $coAuthorPostIDs = self::getCoAuthorsPostsIDs($authorID);
    $postIDs = array_unique(array_merge($coAuthorPostIDs, $authorPostIDs), SORT_REGULAR);

    if(get_query_var('paged')):
      $paged = get_query_var('paged');
    elseif (get_query_var('page')):
      $paged = get_query_var('page');
    else:
      $paged = 1;
    endif;

    $query->set('post_type', 'any');
    $query->set('paged', $paged);
    $query->set('post__in', $postIDs);
    $query->set('orderby', 'date');
    $query->set('order', 'DESC');

  endif;
}


add_action('pre_get_posts', __CLASS__ . '::getAuthorArticles');

在$ postIDs数组中,是共同作者文章的文章ID。 但是它仍然不会显示由哪个作者指定为共同作者的帖子。它仅显示作者撰写的帖子。我确定在postIDs数组中可以找到正确的ID。

有人可以提出建议吗?

0 个答案:

没有答案