每天进步一点点
打造更好的的自己

修改wordpress列表页默认显示文章的数量和排序方式

一、问题描述

本站使用的DUX5.4主题增加了“产品中心”模板,对展示文章多了一种选择,但很可惜的是整个页面无法铺满,如下所示:

官方版排列方式

本站排列方式

二、问题分析

经初步判断,问题出在分类目录,经确认发现每页显示文章为10个,铺满应该是12个,问题找到了需要对应的解决办法。

三、解决问题

1、寻找有价值参考信息

对于一个小白来说互联网是最好的教师,搜索DUX主题分类问题没有找到答案,变硬着头皮改成“wordpress 默认显示文章数量”为关键词搜索,找到了两个有价值的信息

修改Wordpress中的分类目录每页的博客条数:今天碰到个问题,需要修改Wordpress中的分类目录(Category)页面一页显示的博客(Post)条数。本来是10条,通过分页每一页显示10条,想改成20条。 于是直接看Category.php的代码,发现没有控制条数的代码,用的只是while (have_posts()) : the_post(); 的循环。于是又去看分页插件的设置,同样没找到。

修改wordpress列表页默认显示文章的数量和排序方式:

修改模板archive文章分类的显示条数

今天看到首页显示文章15条在后台可以控制,而某个分类下只显示10条内容。因为去图片展示所以导致页面显示不完整。

所以修改内容页面也显示15条。修改如下:

1.可以添加代码至相关页面模板(category.php、search.php、archive.php)

把如下代码:

<?php $posts = query_posts($query_string . '&orderby=date&showposts=15'); ?>

添加至category.php、search.php、archive.php或其它页面模板中,以下函数之前:

<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>

代码中的15就是显示多少条。

个人建议:首页显示的文章数通过后台来控制,其他的嘛,就用这句代码来搞定。

2.并且可以更改代码中的 orderby=date 还可以按ID 什么的 具体看你自己的需求了。

2、整理有价值信息

经过确认,可以确定以下几点:

(1)修改某个文件可以解决,范围:category.php、search.php、archive.php

(2)锁定关键词:have_posts()

(3)修改内容:在“have_posts()”前增加<?php $posts = query_posts($query_string . '&orderby=date&showposts=15'); ?>

经过查阅和测试,在category.php、search.php、archive.php中没有找到有价值的“have_posts()”语句,但在category.php中有赋值ID“default”和“product”,由此判断在修改loop-product.php无疑,的确在文件中找到以下语句:

<?php 
            if ( have_posts() ): 
                echo '<div class="loop-product-content">';
                    while ( have_posts() ) : the_post();
                        echo '<article class="loop-item">';
                            echo '<a'. _post_target_blank() .' class="thumbnail" href="'.get_permalink().'">'._get_post_thumbnail().'</a>';
                            echo '<h2><a'. _post_target_blank() .' href="'.get_permalink().'">'.get_the_title().'</a></h2>';

                            if( _get_post_price() ){
                                echo '<footer>';
                                    echo '<span class="price">'._get_post_price(_get_price_pre().' ').'</span>';
                                echo '</footer>';
                            }

                        echo '</article>';
                    endwhile; 
                    wp_reset_query();
                echo '</div>';
                _moloader('mo_paging');

            else:

                get_template_part( 'content-404' );

            endif; 
        ?>

3、修改和测试

为避免网站再次出现崩溃的悲剧,在本地了修改,并测试完美。即在“have_posts()”前增加<?php $posts = query_posts($query_string . 。修改如下:

<?php $posts = query_posts($query_string . '&orderby=date&showposts=12'); ?>
   
   <?php 
           if ( have_posts() ): 
               echo '<div class="loop-product-content">';
                   while ( have_posts() ) : the_post();
                       echo '<article class="loop-item">';
                           echo '<a'. _post_target_blank() .' class="thumbnail" href="'.get_permalink().'">'._get_post_thumbnail().'</a>';
                           echo '<h2><a'. _post_target_blank() .' href="'.get_permalink().'">'.get_the_title().'</a></h2>';

                           if( _get_post_price() ){
                               echo '<footer>';
                                   echo '<span class="price">'._get_post_price(_get_price_pre().' ').'</span>';
                               echo '</footer>';
                           }

                       echo '</article>';
                   endwhile; 
                   wp_reset_query();
               echo '</div>';
               _moloader('mo_paging');

           else:

               get_template_part( 'content-404' );

           endif; 
       ?>

四、效果展示

赞(0) 打赏
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

本站致力于建设自我管理和自我进化为核心的知识体系

海纳百川合作共赢

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏