WordPress默认自带的分页功能过于简单,于是准备使用第三方的分布插件WP-PageNavi。
按照说明文档,应该把index.php中的下面代码
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
替换为
<?php wp_pagenavi(); ?>
但问题来了,我找遍该文件,根本没有上述代码(可能和版本有关系)。
于是只好自己想办法,然后注意到index.php中分布功能使用下面代码完成:
<?php twentyeleven_content_nav( 'nav-above' ); ?>
<?php twentyeleven_content_nav( 'nav-below' ); ?>
于是,尝试在上述代码位置追加 wp_pagenavi() 调用,测试OK。
于是查找主题 Twenty Eleven 对应该代码部分的调用,一共涉及以下几个文件。
authoor.php
category.php
search.php
archive.php
tag.php
function.php
index.php
再次注意到,function.php 包含了该方法的定义,于是不用每个文件都修改一遍,直接修改function.php中的定义,替换下面代码
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyeleven' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyeleven' ) ); ?></div>
为
<?php wp_pagenavi(); ?>
修改后函数定义如下:
function twentyeleven_content_nav( $nav_id ) {
global $wp_query;
if ( $wp_query->max_num_pages > 1 ) : ?>
<nav id="<?php echo $nav_id; ?>">
<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
<?php wp_pagenavi(); ?>
</nav><!-- #nav-above -->
<?php endif;
}
测试OK,能够正常实现分页功能。