Pre_Get_Post分页不起作用

时间:2021-04-10 作者:Rainy

我一直在尝试修复分类页面的分页,但我不知所措。这是我的pre\\u get\\u posts功能,用于分类页面。

add_action( \'pre_get_posts\', function ( $q )
{
    if ( !is_admin() // Only target the front end queries
         && $q->is_main_query() // Targets the main query only
         && $q->is_category() // Only target category pages
    ) {
        $today = date( \'Y-m-d\' );
        $q->set( \'post_type\', array( \'research_article\', \'events\' ) );
        $q->set( \'posts_per_page\', 12 );
        $q->set( \'orderby\', \'meta_value_num date\' );
        $q->set( \'meta_query\', array(
            array( 
                \'key\' => \'wpcf-date_time\',
                \'value\' => $today,
                \'compare\' => \'>=\',
                \'type\' => \'DATE\',
                ),
            array(
                \'key\'      => \'wpcf-date_time\',
                \'compare\'  => \'NOT EXISTS\'
            ),
            \'relation\' => \'OR\',
        ) );
    }
});
除了每页不显示12篇文章或不包含分页之外,所有内容都正常运行。我试过包括the_posts_pagination() 在我的类别上。php没有运气。我应该在这个pre\\u get\\u posts函数中设置分页变量吗?如果是,如何?

我的类别。php代码:

<?php get_header(); ?> 
<div class="welcome">
    <h1><?php echo single_cat_title(); ?></h1>
    <?php echo category_description(); ?> 
</div>

<div class="site">
    <main id="primary" class="site-main two-col-index">
    
    <?php // Output custom query loop
     if ( have_posts() ) :
        $i = 0;
        while ( have_posts() ) :
            the_post();

            if ( $i == 0 ) : ?>
                <div class="post-box">
                     .... 
                </div> <!-- closes the first div box -->
            <?php else: ?>
                <?php get_template_part( \'template-parts/content\', \'post_box\' ); ?>
            <?php endif; $i++; ?> 
        <?php 
        endwhile;
        endif;
        the_posts_pagination();
        ?>
        
    </main><!-- #main -->

</div>
<?php get_footer(); ?>

1 个回复
SO网友:Rainy

而不是$q->set( \'posts_per_page\', 12 ) 在pre-get-posts功能中,我使用了“Blog-page-show-at-most”的阅读设置,这似乎把事情弄清楚了。

相关推荐

pagination leads to 404 page

我想弄明白为什么我的分页没有显示出来,我快发疯了。我将设置场景:我有一个页面“category.php”。在这个页面中,我为所有分类帖子设置了一个自定义查询。它们是自定义帖子类型,并显示该类别的自定义帖子。我的问题如下:我已经尝试过这个函数:the_post_pagination();$category = get_category(get_query_var(\'cat\')); if ( get_query_var(\'paged\') ) { $paged = get_query_var(