WordPress默认以由近到远的时间顺序排列日志:最新发表的日志显示在日志列表上方,稍早发表的则排在新日志下方。但有些用户可能希望以字母顺序排列日志。我们可以通过更换WordPress模板来以其它方式排列日志。
分类模板
假设目前有一个名为“Glossary”的分类,分类下每篇日志都介绍了一个术语和它的定义,日志标题就是这个术语名称。如果希望显示出所有术语名称及其相应定义,需要编辑主题的category.php文件,然后在主循环前作如下修改:
<?php get_header(); ?> <div id="content"> <?php // we add this, to show all posts in our // Glossary sorted alphabetically if (is_category('Glossary')) { $posts = query_posts($query_string . '&orderby=title&order=asc&posts_per_page=-1'); } // here comes The Loop! if (have_posts()) : while (have_posts()) : the_post(); ?>
特定分类模板
如果希望“Glossary”分类在所有分类中显得与众不同,可以创建为“Glossary”分类创建一个专用的分类模板文件。首先要找到“Glossary”的分类ID。这里我们可以假设“Glossary”的分类ID为13。
复制主题中index.php文件或category.php文件(必要时可以新建一个文件)的内容,粘贴到新文件category-13.php中,根据需要在category-13.php中插入以下代码:
<?php get_header(); ?> <div id="content"> <?php // we add this, to show all posts in our // Glossary sorted alphabetically $posts = query_posts($query_string . '&orderby=title&order=asc&posts_per_page=-1'); // here comes The Loop! if (have_posts()) : while (have_posts()) : the_post(); ?>
为“Glossary”分类使用独立的分类模板文件表明,我们无需用各种各样的条件模板标签打乱主category.php文件。
主模板
如果希望在网站主页上按字母顺序列出所有日志,可以按以下方式编辑主题的index.php文件:
<?php // we add this, to show *all* posts sorted // alphabetically by title $posts = query_posts($query_string . '&orderby=title&order=asc&posts_per_page=-1'); // here comes The Loop! if (have_posts()) : while (have_posts()) : the_post(); ?>
相关资料
- 设置分类页面
- 运行中的The Loop(主循环)
- WordPress Support Forum Thread on Sorting Posts and Categories Alphabeticlly
分类:中文手册