WP-使用自定义元查询扩展主查询

时间:2019-06-21 07:06:32

标签: php wordpress

我正在写一个主题,该主题支持具有多个作者的帖子。我将合著者ID保留在发布中继中。问题在于,在作者存档页面上,我不仅需要显示作者的帖子,还需要显示他是共同作者的帖子,并且它们必须处于同一循环中。 所以这是我的问题:是否有一种很好的方法可以用自定义查询扩展主查询(同时仍保留分页等)。

rank2

2 个答案:

答案 0 :(得分:2)

您可以结合使用meta_query:

'meta_query' => array(
    'relation' => 'OR',
    array(
        'key' => 'author',
        'value' => $author_id,
        'compare'   => 'LIKE',
    ),
    array(
        'key'     => 'co_authors',
        'value'   => $co_author_id,
        'compare' => 'LIKE',
    ) 
)

答案 1 :(得分:1)

add_action('pre_get_posts', function ($query) {
    if (is_admin() || !$query->is_main_query()) return;
    if ($query->is_archive() && $query->is_author()) {

        $author_id = get_query_var('author');

        // extend the main query with these post ids
        $cauthored_arg = array(
            'post_type' => 'post',
            'post_status'    => 'publish',
            'posts_per_page' => '-1',
            'orderby '=>'ID'
            'meta_query' => array(
                array(
                    'key'     => 'co_authors',
                    'value'   => $author_id,
                    'compare' => 'LIKE',
                ),
            )
        );  

        $coauthored_posts = new WP_Query( $cauthored_arg );
    }
});