Wordpress 分页在搜索结果中不起作用

Posted

技术标签:

【中文标题】Wordpress 分页在搜索结果中不起作用【英文标题】:Wordpress pagination not working in search results 【发布时间】:2022-01-16 04:55:44 【问题描述】:

我有这个 search.php 以及按年份/类型搜索的结果:

<?php get_header();
$loop             = new TOROFLIX_Movies();
$sidebar_position = $loop->sidebar_position('sidebar_type_category'); ?>
<div class="Body">
    <div class="Main Container">
        <?php get_template_part('public/partials/template/letters'); ?>
       <div class="TpRwCont <?php echo $sidebar_position; ?>">
            <main>
                <section>
                    <div class="Top AAIco-movie_filter">
                        <h2 class="Title">
                            <?php if(isset($_GET['genre']) or isset($_GET['years']))
                                echo 'Afisez ce doreste sufletul tau! :)';
                             else 
                                echo get_search_query();
                             ?>
                        </h2>
                    </div>
                    <ul class="MovieList Rows AX A04 B03 C20 D03 E20 Alt">
                        <?php if(isset($_GET['genre']) or isset($_GET['years'])) ?>
                            <?php $args = array(
                                'post_type'           => array('movies', 'series'),
                                'posts_per_page'      => get_option( 'posts_per_page' ),
                                'post_status'         => 'publish',
                                'no_found_rows'       => true,
                                'ignore_sticky_posts' => true,
                            ); 
                            if( isset( $_GET['genre'] ) && $_GET['genre'] != '' )
                                $args['tax_query'][] = array(
                                    'taxonomy' => 'category',
                                    'field'    => 'term_id',
                                    'terms'    => $_GET['genre']
                                );
                            
                            if( isset( $_GET['years'] ) && $_GET['years'] != '' )
                                $args['tax_query'][] = array(
                                    'taxonomy' => 'annee',
                                    'field'    => 'term_id',
                                    'terms'    => $_GET['years']
                                );
                            
                            $the_query = new WP_Query( $args );
                            if ( $the_query->have_posts() ) :
                                while ( $the_query->have_posts() ) : $the_query->the_post();
                                    get_template_part("public/partials/template/loop-principal");
                                endwhile;
                            endif; wp_reset_query(); ?>
                        <?php  else
                            if(have_posts()) : 
                                while(have_posts()) : the_post();
                                    get_template_part("public/partials/template/loop-principal");
                                endwhile; ?> 
                            <?php else: ?>
                                <div>
                                    <?php _e('There are no articles', 'toroflix'); ?>
                                </div>
                            <?php endif;
                         ?>
                    </ul>
                           
                </section>                
            </main>
            <?php if($sidebar_position != 'NoSdbr') get_sidebar();  ?>
        </div>
    </div>
</div>
<?php get_footer(); ?>

设置

'posts_per_page'      => get_option( 'posts_per_page' ),

在 wordpress 中将显示 200 个结果。我希望对这些结果进行分页,假设每页 20 个帖子然后下一个,下一个.. 在页面内,没有其他结果页面的链接。

我尝试添加

<nav class="wp-pagenavi">
<?php echo TOROFLIX_Add_Theme_Support::toroflix_pagination(); ?>
</nav>

,我从“类别”页面获得的代码,其中分页可以正常工作,但不会在搜索结果中显示与分页相关的任何内容。 分类页面代码为:

<?php get_header();
$loop             = new TOROFLIX_Movies();
$sidebar_position = $loop->sidebar_position('sidebar_type_category'); ?>
<div class="Body">
    <div class="Main Container">
        <?php $alphabet = get_option('alphabet_show');
        if($alphabet)
                get_template_part('public/partials/template/letters');
             ?>
        <div class="TpRwCont <?php echo $sidebar_position; ?>">
            <main>
                <section>
                    <div class="Top AAIco-movie_filter">
                        <h2 class="Title"><?php single_cat_title(); ?></h2>
                    </div>
                    <ul class="MovieList Rows AX A04 B03 C20 D03 E20 Alt">
                        <?php if(have_posts()) : 
                            while(have_posts()) : the_post();?>
                                <?php get_template_part("public/partials/template/loop-principal"); ?>
                            <?php endwhile; ?> 
                        <?php else: ?>
                            <div>
                                <?php _e('There are no articles', 'toroflix'); ?>
                            </div>
                        <?php endif; ?>
                    </ul>
                    <nav class="wp-pagenavi">
                        <?php echo TOROFLIX_Add_Theme_Support::toroflix_pagination(); ?>
                    </nav>
                </section>                
            </main>
            <?php if($sidebar_position != 'NoSdbr') get_sidebar();  ?>
        </div>
    </div>
</div>
<?php get_footer(); ?>

分类的导航效果很好,如何才能在搜索页面结果中获得相同的结果?

【问题讨论】:

请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:

我不熟悉 Trolofix 的功能,但您是否尝试过使用默认的 WP

the_posts_pagination()

https://developer.wordpress.org/reference/functions/the_posts_pagination/ 或

paginate_links()

https://developer.wordpress.org/reference/functions/paginate_links/

还想弄清楚OROFLIX_Add_Theme_Support::toroflix_pagination() 做了什么?

这可能会为您提供有关如何在 search.php 文件中添加自己的分页的线索

【讨论】:

以上是关于Wordpress 分页在搜索结果中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

一个组件中的多个材料分页在 Angular 中不起作用

ListView中多个上下文中特定上下文的分页在django中不起作用?

分页功能在 WordPress 中不起作用

分页在 GridMvc 上不起作用,它正在重新加载页面

使用动态数据时,搜索和分页功能在 DataTable 中不起作用

排序在 Knp 分页器中不起作用