分类
WordPress教程

WordPress非插件版页面分页

使用WordPress的朋友都知道,它的分页采用的是“上一页、下一页”的方式,对于文章太多的朋友不是太方面,当然你可以使用一些翻页的插件来实现如 “pages:1 of 10 1 2 3 4 …”的效果,本人一直都不太喜欢使用插件,正好手头有个不错的方法来实现。

1. 打开你主题模板的functions.php,在里面添加以下代码:

<?php
function wp_pagenavi($before = '', $after = '', $prelabel = '', $nxtlabel = '', $pages_to_show = 5, $always_show = false){
    global $request, $posts_per_page, $wpdb, $paged;
    if (empty($prelabel)) {
        $prelabel = '<strong>上一页</strong>';
    }
    if (empty($nxtlabel)) {
        $nxtlabel = '<strong>下一页</strong>';
    }
    $half_pages_to_show = round($pages_to_show / 2);
    if (!is_single()) {
        if (!is_category()) {
            preg_match('#FROM\\s(.*)\\sORDER BY#siU', $request, $matches);
        } else {
            preg_match('#FROM\\s(.*)\\sGROUP BY#siU', $request, $matches);
        }
        $fromwhere = $matches[1];
        $numposts = $wpdb->get_var("SELECT COUNT(DISTINCT ID) FROM {$fromwhere}");
        $max_page = ceil($numposts / $posts_per_page);
        if (empty($paged)) {
            $paged = 1;
        }
        if ($max_page > 1 || $always_show) {
            echo "{$before} <div class='pagers'><span>当前第 {$paged} / {$max_page} 页 : </span>";
            if ($paged >= $pages_to_show - 1) {
                echo '<a href="' . get_pagenum_link() . '">&laquo; 首页</a>';
            }
            previous_posts_link($prelabel);
            for ($i = $paged - $half_pages_to_show; $i <= $paged + $half_pages_to_show; $i++) {
                if ($i >= 1 && $i <= $max_page) {
                    if ($i == $paged) {
                        echo "<strong>{$i}</strong>";
                    } else {
                        echo '<a href="' . get_pagenum_link($i) . '">' . $i . '</a>';
                    }
                }
            }
            next_posts_link($nxtlabel, $max_page);
            if ($paged + $half_pages_to_show < $max_page) {
                echo '<a href="' . get_pagenum_link($max_page) . '">最后 &raquo;</a>';
            }
            echo "</div> {$after}";
        }
    }
}?>

2. 在index.php archive.php等需要分页的地方使用

<?php wp_pagenavi(); ?>

替换掉

<?php previous_post_link('上一篇: %link'); ?>
<?php next_post_link('%link :下一篇'); ?>

CSS样式

.pagers{height:25px;color:#111;padding:2px 0;margin:0;text-align:center;}
.pagers a,.pagers strong{margin:0 2px;padding:2px 5px;}
.pagers a{border:1px solid #6c8c37}
.pagers strong{border:1px solid #111}
分类
WordPress教程

WordPress文章/页面添加分页的方法页面添加分页的方法

当WP文章很长的时候,需要添加分页来将文章切分为多页,那么可以使用标签:

<!–nextpage–>

在WP编辑器的HTML模式下,在需要分页的内容后面输该分页标签即可完成分页,该标签当然也可重复使用。

如果在文章中添加了分页标签,查看该文章时,却没有显示分页导航的效果。这时就需要在模板的相关文件添加一个内置函数来得到分页导航。

在主题的index.和single.php(如果有的话)等文件中,找到类似下面的代码:

<?php the_content(__('(more...)'));?>

在这行代码下面添加

<?php wp_link_pages(); ?>

保存后,重新刷新添加了分页的文章,你就可以看到分页的效果了。