关于 WordPress 的文章归档问题

作者: 微歌 分类: 网站程序 发布时间: 2013-01-30 02:17 ė 6 1条评论

  文章归档是 WordPress 的一个重要功能,但 WordPress 的文章归档也有几个致命的不足,默认的文章归档是按月的,建站几年后会累集很多,边栏中『文章归档』部分会很长,不仅不方便,也不美观。又如,文章归档默认用的是形如『2013 年一月』这样的日期格式,这种中西结合的显示方式很不美观。本文将介绍一些解决上述问题的方法,而且介绍的是非插件的方法。

  虽然要解决以上问题,有一些插件可用,但插件太多会影响网站的性能,通常,能不使用插件尽量不要使用插件。所以,我们这里介绍的是直接修改代码的方法,以下以最新的 WordPress 3.5.1 为例:

  一、修改日期格式为『2013 年 1 月』这样的形式

  文章归档默认用的是形如『2013 年一月』这样的日期格式,如下图所示:
  要将其修改为『2013 年 1 月』这样的显示形式,只需要修改 wp-includes/general-template.php,将其中的 937 行的:

$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);

  修改为:

$text = sprintf(__('%1$s年%2$s月'), $arcresult->year, zeroise(intval($arcresult->month), 1));

  修改后显示效果如下:
  二、修改日期格式为『2013 年 01 月』这样的形式

  要将其修改为『2013 年 01 月』这样的显示形式,只需要修改 wp-includes/general-template.php,将其中的 937 行的:

$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);

 

  修改为:

$text = sprintf(__('%1$s年%2$s月'), $arcresult->year, zeroise(intval($arcresult->month), 2));

 

  修改后显示效果如下:
  三、让文章归档只显示最近 N 个月的

  默认是显示所有月份的,建站多年后,『文章归档』中显示的东西会太多了,另一方面,多年前的文档未必有太多的参考价值,为了解决这个问题,可以将 general-template.php 中 871 行开始的以下代码:

function wp_get_archives($args = '') {
	global $wpdb, $wp_locale;

	$defaults = array(
		'type' => 'monthly', 'limit' => '',
		'format' => 'html', 'before' => '',
		'after' => '', 'show_post_count' => false,
		'echo' => 1, 'order' => 'DESC',
	);

  修改为:

function wp_get_archives($args = '') {
	global $wpdb, $wp_locale;

	$defaults = array(
		'type' => 'monthly', 'limit' => '16',
		'format' => 'html', 'before' => '',
		'after' => '', 'show_post_count' => false,
		'echo' => 1, 'order' => 'DESC',
	);

  这里的例子是显示最近 16 个月的,因为我使用的模板文章归档是双列显示的,大家可根据实际需要修改。

  四、修改日期格式为按年显示

  默认是按月显示,建站多年后,如果嫌月份太多,可以修改为按年显示,具体方法是:在所使用的模板中找到 sidebar.php 文件(不同的主题并不相同,这里以默认主题Twenty Eleven为例),将其中的:

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

 

  修改为:

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

 

  修改后显示效果如下:
  

本文出自微歌,转载时请注明出处及相应链接。

本文永久链接: https://wego2.com/guan-yu-WordPress-de-wen-zhang-gui-dang-wen-ti.html

一条评论

  1. Kelvin 2013年11月16日 下午2:31 回复

    如果只显示某年下面的月份这个怎么调用,好比
    2013
    --12月
    --11月
    2012
    --10月

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部