无插件实现 WordPress 单篇文章分页
文章目录

记得周良很久以前折腾的视觉天城教程网站,主要是一个设计教程网站,用的也是 WordPress。说到教程网站,文章当然会有很多图片,往往一篇文章就长到一个恐怖的程度,并且打开很慢,所以给网站添加一个分页的功能是当务之急!

在网上找了一些教程进行试验,主要都是使用 WordPress 自带隐藏的文章内容分页功能。

下面我们将说下如何显示 WordPress(我只在 WordPress 3.1.1 下面测试过)隐藏的文章内容分页功能:

  1. 找到 wp-includes/js/quicktags.js,在其中找到下面这个代码:
edButtons[edButtons.length]=new edButton(“ed_more”,”more”,”<!–more–>”,””,”t”,-1);

在这个代码的后面加上如下代码:

edButtons[edButtons.length]=new edButton(“ed_next”,”page”,”<!–nextpage–>”,”",”p”,-1);

注:是“ed_next”,不是“ed_netx”。是“–nextpage–”,不是“–netxpage–”,网上很多教程都是拼写错误。

  1. 继续在 wp-includes/js/quicktags.js 中找到如下代码:
j.Buttons[j.Buttons.length]=new edButton(a+”_more”,”more”,”<!–more–>”,”",”t”,-1);

在后面加上如下代码:

j.Buttons[j.Buttons.length]=new edButton(a+”_next”,”page”,”<!–nextpage–>”,”",”p”,-1);

保存 wp-includes/js/quicktags.js

  1. 找到 wp-includes/js/quicktags.dev.js ,找到下面代码
/* edButtons[edButtons.length] = new edButton(‘ed_next’ ,’page’ ,’<!–nextpage–>’ ,” ,’p’ ,-1 ); */

将其注释符号去掉,如下:

edButtons[edButtons.length] = new edButton(‘ed_next’ ,’page’ ,’<!–nextpage–>’ ,” ,’p’ ,-1 );
  1. 找到 wp-admin/includes/post.php ,找到下面代码:
‘link’, ‘unlink’, ‘wp_more’,

在后面添加以下代码:

‘wp_page’,

好了,WordPress 3.1.1 隐藏的文章内容分页功能现在已经显示出来了。如图:(此图标和 more 图标相似)

下面我们还要往当前主题目录下 single.php 里面添加分页函数,找到代码:

<?php the_content(); ?>

在下面添加分页函数:

<?php wp_link_pages(‘before=&after=&next_or_number=number&pagelink=第%页’); ?>

现在你可以添加一个长篇文章来测试效果了。当然了如果你会 CSS,你还可以美化一下效果。 关于函数 wp_link_pages 的用法可以查看 WordPress 官网:http://codex.wordpress.org/Template_Tags/wp_link_pages

此分页功能对搜索引擎不够友好,所以我们还得改造。此方法参照:http://wordpress.org.cn/thread-61875-1-1.html

  1. 我们找到当前主题目录下的 header.php ,在</head>之间加上如下代码:
<?php if ( is_singular() ){ ?> <link rel=”canonical” href=”<?php the_permalink(); ?>” /> <?php } ?>
  1. 找到当前主题目录下的 header.php,在输出 description 元标记的代码后添加:
<?php if (get_query_var(‘paged’)) { //判断是否为首页 echo ‘第’; echo get_query_var(‘paged’); //页码 echo ‘页’; }?>

此方法可能有些问题,我没有发现有任何改变。

  1. 避免feed输出也被分页,找到 wp-includes/query.php ,找到代码:
if ( strpos( $content, ‘<!–nextpage–>’ ) ) {

改为:

if ( strpos( $content, ‘<!–nextpage–>’ ) && (!is_feed()) ) {

改造基本完成,有什么问题提出来,大家可以交流下。