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

2011.10.1 38 Comments 14,302 次阅读

记得周良很久以前折腾的视觉天城教程网站,主要是一个设计教程网站,用的也是 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 ,在之间加上如下代码:

<?php if ( is_singular() ){ ?> <link rel=”canonical” href=”<?php the_permalink(); ?>” /> <?php } ?>

2.找到当前主题目录下的 header.php,在输出 description 元标记的代码后添加:

<?php if (get_query_var(‘paged’)) { //判断是否为首页 echo ‘第’; echo get_query_var(‘paged’); //页码 echo ‘页’; }?>

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

3.避免feed输出也被分页,找到 wp-includes/query.php ,找到代码:

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

改为:

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

改造基本完成,有什么问题提出来,大家可以交流下。 今天是国庆节,祝大家节日快乐!

38 Responses
Comment (11)
Trackback (0)
  • #16
    周良 :

    有方法的,过几天修改一下

    2013.06.6 20:25 Reply
  • #17
    周良 :

    有方法的,过几天修改一下

    2013.06.6 20:25 Reply
  • #18
    周良 :

    好的

    2013.06.6 20:25 Reply
  • #19
    周良 :

    好的

    2013.06.6 20:25 Reply
  • #20
    破折君 :

    这个不错哈哈

    2013.03.30 22:18 Reply
  • #21
    破折君 :

    这个不错哈哈

    2013.03.30 22:18 Reply
  • #22
    电脑爱好者 :

    有没有直接根据字数 自动分页的…

    2013.02.5 11:19 Reply
    • 周良 :

      自动没用。不过有个更加简单的方法,过几天写出来。

      2013.02.5 12:41 Reply
      • 网赚大侠 :

        其实很多人希望长文章可以实现自动分页,不用手动在文章内一个个添加分页标签。呵呵,我们都在寻找长文章自动分页,怎么到现在没看到您有写出这个自动分页的方法呢?

        2013.06.6 11:40 Reply
  • 还没有Trackback
Leave a Reply