在wordpress中实现单篇文章分页的方法
此方法其实是本站文章“在wordpress2.7.1中实现单篇文章分页的方法之改进版”的升级版,方法类似,请对照修改。
有些很长的文章,例如上几万字的,甚至几十万字的,在首页还可以用“
<!–more–> ”代码分隔。可是,打开单页的时候,如果一下子拉出几十米长的文章来肯定会吓跑很多读者的。
这时候就需要用到另一个分页的代码“ <!–nextpage–>
”来将文章进行适量的缩短,做成内分页,不仅能增加读者的文章阅读舒适度,还能让页面的打开速度加快不少,尤其是文章有很多插图的时候。
可是,wordpress 2.8 默认无法使用“ <!–nextpage–> ”,只能自己动手来丰衣足食了。
注意:以下文件的修改最好用专业的文档编辑软件(例如:EmEditor、EditPlus,并注意使用关键字搜索的功能查找你要修改的位置),以
“UTF-8”格式保存!
以下方法是针对wordpress2.8版本的。如
果将来增加了更高版本,并且方法需要更新的时候,我再在此文章增加下一页,以及下下一页来完善,敬请注意针对版本。
1.后台编辑支持
在wordpress的后台编辑发表文章的地方是没有nextpage分页选项的,因为wordpress
v2.8已将相关的代码删除了,我们需要将它加上去。
首先找到wordpress的文件,在文件夹“\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);
接着,再找到以下的句子:
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);
将文件保存(保存方式请看前面的“注意”),上传、覆盖(覆盖时注意备份,下同)。我们就可以在后台的“HTML源代码”编辑中看见“page”的代码插
入选项了。 如图:
接着,我们实现在“可视化编辑”中也能插入分页代码。在文件夹“\wp-admin\includes”中,打开编辑“post.php”,找到以下的句
子:
'|', 'link', 'unlink', 'wp_more', '|',
在“ ‘wp_more’, ”后面添加上“ ‘wp_page’, ”,语句变成了:
'|', 'link', 'unlink', 'wp_more','wp_page', '|',
保存、上传、覆盖,就可以在“可视化编辑”中看见如图所示的选项了: 。
不过,这样只是让后台有了支持,还必须需要单页文件“single.php”的函数支持,我们接着以下的操作。
2.模板支持分页显示
找到自己使用的模板“\wp-content\themes\你使用的模板文件夹”,找到“single.php”,打开找到:
<?php the_content(); ?>
然后在这个语句后面增加以下的代码(感谢carp朋友的原代码):
<p><br /> <?php<br /> wp_link_pages('before=&after=&next_or_number=next&previouspagelink=上一页&nextpagelink= ');<br /> wp_link_pages('before=&after=&next_or_number=number');<br /> echo " ";<br /> wp_link_pages('before=&after=&next_or_number=next&previouspagelink= &nextpagelink=下一页');<br /> ?><br /> </p>
其中的“页次”两字你可以改成自己想用的。
如果你想在自己的首页实现分页功能(注:建议你不要修改首页的,首页建议你用专门的分页插件来实现,此处的贴出仅供参考),需要在“\wp-
content\themes\你使用的模板文件夹”,找到“index.php”,查找语句:
the_content
用我的举例:我的是查找后,找到“ <?php the_content(__(’Read more…’,
‘elegantbox’)); ?> ”,然后在语句后面添加语句:
<p><br /> <?php<br /> wp_link_pages('before=&after=&next_or_number=next&previouspagelink=上一页&nextpagelink= ');<br /> wp_link_pages('before=&after=&next_or_number=number');<br /> echo " ";<br /> wp_link_pages('before=&after=&next_or_number=next&previouspagelink= &nextpagelink=下一页');<br /> ?><br /> </p>
将修改后的文件保存、上传并覆盖。
以上的两步操作,我们就已经实现了单篇文章分页功能了,如图:
可是,在feed输出时会出现文章不全的问题,所以,需要再稍微修改一下。
if ( strpos( $content, '<!--nextpage-->' ) )
然后将其改成:
if ( strpos( $content, '<!--nextpage-->' ) && (!is_feed()) )
老样子,保存、上传、覆盖。
Writer中像插入more代码那样插入nextpage代码的办法,也没找到有什么插件可以实现。现在还是只能在html编辑的状态插入代码,不过也
不麻烦。
nextpage与more的不同在于,more只能用一次,而且是在首页管用,而nextpage可以在文章中反复插入,实现像本文的效果,分成很多页
面。要注意是,如果more标签在nextpage标签之前的话,在打开首页的时候,文章还是会被more标签截断。