如何在一个带有分页的循环中显示从标准帖子到定制帖子类型的所有帖子?

时间:2016-01-21 作者:palekjram

我有几个标准帖子和自定义帖子类型的帖子。现在,我想在我的主页上使用循环显示它们。我的问题是,它显示的帖子包括自定义帖子类型中的帖子,但不是全部。

我现在的帖子类型:7 standard posts, 15 Photos, 5 Videos, 2 Webs. 总计29 posts.

在我的阅读设置中,我将博客页面最多显示为6 posts. 现在当我转到主页时,我可以看到这6篇文章混合了不同的文章类型,但只有2页(第2页也包括6篇文章)。也就是说,目前只有不到13个帖子,我总共有29个帖子。当我去website.com/page/3/ 我得到一个404错误。

我正在使用最新的FoundationPress WordPress主题的框架,下面是我的代码

    <?php 
        $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
        $loop = new WP_Query(array(
            \'post_type\' => array(\'post\', \'photo\', \'video\', \'web\'),
            \'posts_per_page\' => get_option(\'posts_per_page\'),
            \'paged\' => $paged
        ));
    ?>

        <?php while ( $loop -> have_posts() ) : $loop -> the_post(); ?>
            <?php get_template_part( \'content\', get_post_format() ); ?>
        <?php endwhile; ?>
仅供参考,下面是显示导航的FoundationPress函数

$paginate_links = paginate_links( array(
    \'base\' => str_replace( $big, \'%#%\', html_entity_decode( get_pagenum_link( $big ) ) ),
    \'current\' => max( 1, get_query_var( \'paged\' ) ),
    \'total\' => $wp_query->max_num_pages,
    \'mid_size\' => 5,
    \'prev_next\' => true,
    \'prev_text\' => __( \'&laquo;\', \'foundationpress\' ),
    \'next_text\' => __( \'&raquo;\', \'foundationpress\' ),
    \'type\' => \'list\',
) );

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

在正常情况下,在主页帖子中包含CPT不需要自定义查询。仅使用pre_get_posts.

function wpse215208_include_all_cpt( $query ) {
    if ( is_home() && $query->is_main_query() ) {
        $query->set(\'post_type\', array( \'post\', \'photo\', \'video\', \'web\' ) );
    }
}
add_action(\'pre_get_posts\', \'wpse215208_include_all_cpt\');

相关推荐

Add pagination to WP_Query

我试图在下面的代码中添加分页,但不知道如何与之集成。请帮忙在帖子上找到页码。<?php $child_query = new WP_Query(array(\'post_type\' => \'blogpost\', \'orderby\' => \'date\', \'order\' => \'DESC\')); while ( $child_query->ha