最新消息:Excel无乱码转CSV,由于工作原因很少更新博客和回复大家的评论,非常抱歉。

wordpress所有文章列表页面-模板archives.php

如何为WordPress创建一个包含所有文章列表的索引页面?只在列表页面中列出文章标题和发表日期,浏览量,评论数等简单的几个参数,这样我们很容易就能找到以前发表的老文章,省去不断翻页的麻烦。robots.txt文件中,为了避免重复页面我也把/page翻页链接给Disallow了,所以添加一个Google和百度搜索引擎能够索引到的所有文章页面就很有必要。同时又能用这样的所有文章页面来做网站地图sitemap。

我们可以通过WordPress新增页面的方式来实现生成一个所有文章页面,不过页面内容编辑框中是不能输入php代码和函数的。所以我们在这个新添加的页面上套用archives.php模板,在archives.php模板中就可以随意调用各种函数和添加php代码了,也是官方介绍的方法:Creating_an_Archive_Index;翻译修改了一些,具体步骤如下(版本WP1.5+,以WP2.9.1为例):

1. 上传archives.php模板文件

在wp-content/themes/default目录下,即在WordPress默认主题中找到archives.php文件,将它上传到你正在使用的主题目录下。注意不是文章索引模板文件archive.php,不要弄错了。

2. 进入管理控制面板–页面–添加新页面

给这个新页面随意创建一个名称如“所有文章”(archives index)或“Sitemap”,页面内容编辑框中留空,不要填。

在边栏中的找到属性模板–在下拉列表中选择Archives模板,然后保存。

然后在页面的列表中,你会看到一个使用刚才创建页面时设置的名称的新页面。打开看看,一个包含文章按月归档和显示文章分类的模板页面生成了。下一步我们修改和自定义设置archives模板。

3.  自定义WordPress所有文章索引页面:

可以使用插件或者PHP代码来自定义WordPress文章索引页面,先看看使用PHP调用WordPress的wp_get_archives()函数来提取文章的例子:

A. 按月列出最近12个月的归档文章:

<?php wp_get_archives('type=monthly&limit=12'); ?>

B. 列出最近30天发表的文章:

<?php wp_get_archives('type=daily&limit=30'); ?>

C. 显示最近发表的20篇文章的文章标题:

<?php wp_get_archives('type=postbypost&limit=20&format=custom'); ?>

D. 用下拉列表框显示每个月的月度文章,并显示当月文章总数目:

<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'>
<option value=""><?php echo attribute_escape(__('Select Month')); ?></option>
<?php wp_get_archives('type=monthly&format=option&show_post_count=1'); ?> </select>

E. 按字母/汉字排序列出已发表的所有文章:

<?php wp_get_archives('type=alpha'); ?>

关于wp_get_archives()函数更详细的介绍请看WordPress官方代码文档:Template_Tags/wp_get_archives

从上面的举例看出,最后一种是用wp_get_archives()函数可以实现显示所有文章的文章标题的方式。那么将archives.php文件中原有的PHP代码替换成这段代码就可以按字母/汉字/数字顺序显示所有文章了。可以当作是提交给搜索引擎的sitemap最好的一种方式,如下:

<?php get_header(); ?>

<div>
<?php wp_get_archives('type=alpha'); ?>
</div>
<!-- end .posts-wrap -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

4. 人性化自定义所有文章页面:

上面这种方式的所有文章当作sitemap提交给搜索引擎固然好,但是访问者看到这个网站地图就不知道怎么去找需要的文章了,所以最好能进一步自定义archives.php文件,让它按照发表文章的年月日的日期先后来显示,或者按照分类来显示,同时显示发表日期和浏览量、评论数、所在分类等等,举例如下。

A. 显示所有发表的文章(显示发表日期、所在分类、评论数等),使用循环和get_posts()函数

<?php while(have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<ul>
<?php $totalposts = get_posts('numberposts=200&offset=0');
foreach($totalposts as $post) :
?>
<li>
<?php the_time('M j') ?> : <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
发表在: <?php the_category(', ') ?>
<?php comments_popup_link( __( '评论 (0)', 'farlee' ), __( '评论 (1)', 'farlee' ), __( '评论 (%)', 'farlee' ), 'comments-link', __('评论关闭', 'farlee')); ?>
</li>
<?php endforeach; ?>
</ul>
<?php endwhile; ?>

B. 下面的例子按照年月输出文章发表日期和文章标题及链接、浏览量、评论数及回复链接。通过调用get_posts()函数提取所有文章,它的参数numberposts=0表示所有文章,按日期降序排序。然后在每个循环中将文章发表的月份和年份与前面一篇对比,如果不同则输出年份和月份。

<?php
$previous_year = $year = 0;
$previous_month = $month = 0;
$ul_open = false;

$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
?>

<?php foreach($myposts as $post) : ?>

<?php
setup_postdata($post);
$year = mysql2date('Y', $post->post_date);
$month = mysql2date('n', $post->post_date);
$day = mysql2date('j', $post->post_date);
?>

<?php if($year != $previous_year || $month != $previous_month) : ?>

<?php if($ul_open == true) : ?>
</ul>
<?php endif; ?>

<h3><?php the_time('Y年 F'); ?></h3>
<ul>
<?php $ul_open = true; ?>
<?php endif; ?>
<?php $previous_year = $year; $previous_month = $month; ?>

<li><span><?php the_time('Y/m/d'); ?></span> <span><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span> <span>&nbsp;<?php if(function_exists('the_views')) { the_views(); } ?></span> <?php comments_popup_link( __( '评论 (0)', 'farlee' ), __( '评论 (1)', 'farlee' ), __( '评论 (%)', 'farlee' ), 'comments-link', __('评论关闭', 'farlee')); ?> </li>

<?php endforeach; ?>
</ul>

5. 使用所有文章索引页面插件

想使用插件的朋友可以试试下面几个,都上传到了WordPress.org可以下载:

Clean Archives Reloaded;  Latest Post from each Category plugin for WordPress

Clean Archives ReloadedWordPress 所有文章插件:Clean Archives Reloaded

文章页面posts是WordPress博客内容的精华,其他链接大部分都可以屏蔽掉。所以在网站地图和提交给搜索引擎的Sitemap.xml中,所有文章是关键。

转载请注明:嗨酷哥,有你更酷! » wordpress所有文章列表页面-模板archives.php

与本文相关文章

发表我的评论

取消评论
表情 插代码

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项

网友评论1

  1. 好东西 分享了~ 辛苦了

    视频聊天2011-11-10 16:10 回复