首页 > CMS > Wordpress > 正文

wordpress文章按日期字段排序修改

2024-09-07 00:52:18
字体:
来源:转载
供稿:网友

wordpress博客排序时我们一般只用系统默认了,如果我们让它按日期来排序要如何操作了,下文小编来为各位介绍一下吧.

按日期排序,首先打开首页 index.php 文件,找如类似于 if (have_posts()) 这样的循环,然后修改成如下的代码:

  1. <?php 
  2. // query_posts函数 
  3. query_posts('orderby=comment_count'); //以评论最多到最少的排序方式 
  4. //主循环 
  5. if ( have_posts() ) : while ( have_posts() ) : the_post(); 
  6. ?> 

查找:<?php endwhile; ?>

修改成:

<?php endwhile; else: ?>

然后查找:修改成如下代码:

  1. <?php 
  2. endif
  3. // 重置query 
  4. wp_reset_query() 
  5. ?> 

这个时候文章已经按照评论数量的多少来进行排序了,但有时候会遇到无法分页的情况,哪么我们可以找到query_posts函数修改成如下的代码:

  1. <?php 
  2. $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;//控制分页 
  3. $args = array
  4. // 这里以下面的方式添加query_posts参数,具体参数可以参加官方文档 
  5. 'orderby' => comment_count, 
  6. 'paged' => $paged 
  7. ); //Vevb.com 
  8. query_posts($args); 
  9. //主循环 
  10. if ( have_posts() ) : while ( have_posts() ) : the_post(); 
  11. ?> 

现在首页已经按照评论的数量多少来进行排序了,如果还要自定义其它页面的排序方法,基本上按照这个来修改就可以了,其它页面的修改要打开相应页面去修改,比如标签页面 tag.php

文章的数量和排序方式

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就是显示多少条。

增加文章排序方式:

  1. <h4>文章排序</h4> 
  2. <ul> 
  3. <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='rand') ) echo 'class="current"'; ?> href="/?order=rand" rel="nofollow">随机阅读</a></li> 
  4. <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='commented') ) echo 'class="current"'; ?> href="/?order=commented" rel="nofollow">评论最多</a></li> 
  5. <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='alpha') ) echo 'class="current"'; ?> href="/?order=alpha" rel="nofollow">标题排序</a></li> 
  6. </ul> 

改变主循环,首先你得先在主题的index.php中找到以下语句:

if (have_posts())

然后在这句之前添加以下代码:

  1. if ( isset($_GET['order']) ) 
  2. switch ($_GET['order']) 
  3. case 'rand' : $orderby = 'rand'break
  4. case 'commented' : $orderby = 'comment_count'break
  5. case 'alpha' : $orderby = 'title'break
  6. default : $orderby = 'title'
  7. }</p> <p> global $wp_query
  8. $argsarray('orderby' => $orderby'order' => 'DESC');</p> <p> $arms = array_merge($args$wp_query->query); 
  9. query_posts($arms); 
  10. }</p> <p>if (have_posts())

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表