当前位置: 首页 > 知识库问答 >
问题:

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

邵伟
2023-03-14

我有这个搜索。按年份/类型显示搜索结果的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>

,这是我从Category页面获得的一段代码,在该页面中分页工作没有问题,但在搜索结果中不显示任何与分页相关的内容。类别页面代码为:

<?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个答案

沃念
2023-03-14

我不熟悉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\u Add\u Theme\u Support::toroflix\u pagination()有什么作用?

这可能会给你一个线索如何添加自己的分页上的search.php文件

 类似资料:
  • 我到处寻找解决方案,尝试了不同的解决方案,包括Chip Bennett在这里详细解释的解决方案,但我似乎仍然无法让它工作。 结果的第一页工作正常,但是从第2页开始,它只显示索引模板,并且仍然显示页面未找到。这是我的代码: 功能。php 提取查询参数的代码 循环代码: 任何建议将不胜感激。 编辑: 我还注意到,当我尝试访问第2页时,URL被修改了。 这是第1页URL: 第2页URL:

  • 不明白为什么这个突然停止工作。网站是:http://www.revival.tv/sermons/topical-messages/ 当它进入第二页时,它只使用了归档模板:(不确定为什么这样做,它在去年工作得很好。想知道Wordpress更新是否做到了这一点,我们只是注意到了它。 我使用以下的分页: 然后改写布道:

  • 我到处找了又找,但还是找不到解决问题的办法。我还不熟悉php和codeigniter,所以可能我已经错过了答案,但不管怎样,下面是我要做的。 这是我的控制器(c_index.php)-调用搜索函数并对结果数组执行分页。 这是我的视图(index.php)-基本上只是显示分页结果 我的模型(m_search.php)-基本上搜索数据库并返回结果数组。 类M_搜索扩展了CI_模型{ 现在我的问题是保留

  • 我已经花了很多时间弄清楚为什么我的搜索在我定制的模板中不起作用。到目前为止,我已经知道了如何包含searchform。php文件在我的头,创建搜索。php文件目前是空的(因此,当我搜索某个内容时,我会被重定向到一个空白页面,我想我肯定需要search.php文件中的某些内容才能使其正常工作),我阅读了Wordpress codex的所有内容,但找不到解决方案,我找到的唯一有用信息是这个。 http

  • 如果搜索字符串和目标对象最后有以下任何字符,那么它就不起作用。s y e 在我们的应用程序中,如果用户名为Granny,Smith。它没有搜索奶奶的任何记录,因为它以y结尾。s和e的情况也是如此,即詹姆斯、凯蒂。

  • 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于搜索页和结果页 可以使用 Dreamweaver 生成一组页面,以便用户可以搜索您的数据库并查看搜索结果。 在大多数情况下,至少需要两个页面才能将此功能添加到 Web 应用程序中。第一个页面包含用户可以在其