Top Down Contact Closed
Home > hacks > 如何在您的WordPress主题中集成一个分页功能

如何在您的WordPress主题中集成一个分页功能

2008/10/09 Add 15 comments |

     众所周知WordPress是没有自带分页这个功能的,当你换上一个非常心仪的主题之后,如果主题还是沿用WordPress默认的“前一页”(previous page)和“下一页”(next page)链接,这显然对读者的阅读来说是非常不方便的,如果读者想查看你较早的文章,那就不得不一页一页地翻下去!除非是你有意想让你的读者把你的博客翻个底朝天! :mrgreen:


     当然WP-PageNavi这个大名鼎鼎、众所周知的插件就可以为我们的博客添加一个很好的分页功能。那么是不是可以不安装插件而在主题中直接嵌入分页功能呢?在本教程,我将告诉你如何将WP-PageNavi插件直接整合到你的WordPress的主题中。 :idea:


一、WP-PageNavi

WP-PageNavi是一个WordPress插件,它可以在你的主题中显示一个页面分页导航功能,以代替默认的“前一页”(previous page)和“下一页”(next page)链接。当然,第一件要做的事就是下载这个插件,下载插件到本机后,解压缩,然后复制并粘贴下列文件到您的主题目录:

  • wp-pagenavi.php
  • wp-pagenavi.css

二、编辑文件

打开你想让分页功能出现的文件(index.php, categories.php 或 search.php),找到以下代码:

<div class="navigation">
	<div class="alignleft"><?php next_posts_link('Previous entries') ?></div>
	<div class="alignright"><?php previous_posts_link('Next entries') ?></div>
</div>

替换这部分的代码如下:

1
2
3
4
<?php
include('wp-pagenavi.php');
if(function_exists('wp_pagenavi')) { wp_pagenavi(); }
?>

如果此时你保存文件并重新刷新页面,很遗憾地告诉你什么也不会出现:-),这是因为Wp-PageNavi是一个WordPress插件,现在还没有被嵌入到你的主题文件中。(*^__^*) 嘻嘻……我们可以通过如下技巧来实现,只需打开wp-pagenavi.php文件并找到如下代码(第61行):

1
2
function wp_pagenavi($before = '', $after = '') {
        global $wpdb, $wp_query;

因为我们必须调用pagenavi_init()这个函数,因此按照如下方法改造:

1
2
3
function wp_pagenavi($before = '', $after = '') {
	global $wpdb, $wp_query;
        pagenavi_init(); //Calling the pagenavi_init() function

现在,刷新你的主题文件,分页功能已经显示在你要它出现的位置:-),但是它好像不怎么好看,哦!原来我们忘记了调用wp-pagenavi.css文件,OK!我们现在来调用CSS文件:

打开header.php文件找到下面这一行:

1
2
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" 
type="text/css" media="screen" />

只需要在其后加入以下代码:

1
2
<link rel="stylesheet" href="<?php echo TEMPLATEPATH.'/pagenavi.css';?>" 
type="text/css" media="screen" />

OK!我们的分页功能已经完成!刷新一下页面,看看是不是和使用插件效果一样呢?:-)

三、究竟是在主题中集成分页功能呢,还是使用插件?

我很肯定你想知道为什么我使用这个技巧而不是选择直接使用插件,这主要是基于以下两点想法:

1、对于很熟悉WordPress和PHP代码的人来说也许使用插件只是含简单的事情,但是并不是所有使用WordPress的人都是对代码很熟悉的,也许他仅仅只会使用WordPress而已,那么对于他们来说使用插件和修改代码也许并不是太容易的事情。但是分页功能却又是每个博客不可缺少的功能!

2、对于一个主题设计者来说,只有让使用者做最少的事情就可以完美的享受主题的各项功能,我想这是一个好主题的标准之一!

英文链接请查看这里,如果你还有什么更好的集成方法,欢迎交流! :smile:

Ad spot

声明:城市@后版权所有,未经授权请勿转载本博客日志到任何博客或论坛!

如果你喜欢我的文章,欢迎订阅。Google Reader | 鲜果 | 抓虾 | 九点 | QQ邮箱 | 有道 | 更多

Posted by: Gil | Categories: hacks | Tags: , , | Read: 1,653 views
  1. 10月 9th, 2008 at 20:42 | #1

    这个功能,我下的那模板自带的。
    不过,先收藏了。以后应该用得着。
    另外,我的那模板,tag点进去后,就没翻页的标识,就一页的5篇文章,那里面也可以和首页、分类页一样,出现 翻页的功能不?

  2. 10月 9th, 2008 at 21:00 | #2

    @骑驴哼哼:
    我觉得主题就要直接整合这个功能,分页功能是必须得嘛 :smile:
    当然可以啦,只要你把主题里所有“前一页”和“下一页”这种模式都替换成分页形式就OK啦!

  3. 10月 9th, 2008 at 22:33 | #3

    怎么没看到原文链接的呢?

  4. 10月 9th, 2008 at 23:07 | #4

    @冰古: 罪过,罪过! :mrgreen: 边看电影编写,忘了最后添加英文原文链接。现在已经补上,有兴趣的朋友可以直接去查看原文 :shock:
    谢谢冰古的提醒 :smile:

  5. 10月 9th, 2008 at 23:24 | #5

    :cool: 善哉善哉

  6. winbye
    10月 11th, 2008 at 19:33 | #6

    我没有找到如下代码:

    所以我这一段代码我没有替换!
    后面的我都替换了! 请帮助我一下 谢谢

  7. winbye
    10月 11th, 2008 at 19:35 | #7

    第一部分代码

  8. 10月 11th, 2008 at 21:14 | #8

    @winbye: 一般应该是有的啊 :mrgreen: 你的index.php或是page.php都没有这个啊?如果没有你可以在< ?php get_footer(); ?>之前适当位置直接加入需要的代码即可 :smile:

  9. winbye
    10月 11th, 2008 at 23:33 | #9

    我去加了 我的首页就一片文章所以还看不出行不行,不急慢慢解决吧

  10. 10月 12th, 2008 at 20:10 | #10

    我的网站上,tags的链接,就没翻页功能,首页和分类都有的。 没搞明白什么原因,你可以帮我分析下吗?

  11. 10月 12th, 2008 at 22:46 | #11

    @骑驴哼哼:
    一般来说,需要分页的模板文件有index.php、search.php、page.php、archive.php,另外看看你是否还有自建模板文件,你看看你的这些文件是否加上了分页代码 :wink:

  12. 10月 19th, 2008 at 10:38 | #12

    呵呵 看懂了 就是不会改

  13. 2月 11th, 2009 at 10:58 | #13

    不是十分明白

  14. 2月 11th, 2009 at 11:14 | #14

    自建的主题貌似加上了不起作用呢?不能跳转?

  15. 12月 22nd, 2009 at 05:31 | #15

    - -,。我添加没有效果。怎么回事