WordPress不使用插件实现分页

WordPress默认的分页只有 “下一页”和 “上一页”. 如果你博客里面文章比较多,想让分页更好看一些的话那我建议你不要使用博客的默认链接,而是使用更漂亮点的分页导航.我的博客中使用的分页就是 Habitat . 向下拉就可以在下面看见文章的分页按钮. 为啥需要使用它们呢? 因为它们可以让你很简单的就知道文章的导航地址,很容易就知道有多少文章,有多少页.用户体验比较好 :)不过使用插件的话感觉很浪费服务器资源,因为只需要简单的几句php和css代码即可搞定,下面我就来介绍下怎么在主题里面不用插件实现分页吧:

先写方法名

如果你不想知道原因的话就直接复制下面的代码到主题的function.php文件去吧,不过我下面还是来介绍下这些代码:
function kriesi_pagination($pages = '', $range = 2)
{  
     $showitems = ($range * 2)+1;  

     global $paged;
     if(empty($paged)) $paged = 1;

     if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     }   

     if(1 != $pages)
     {
         echo "<div class='pagination'>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>«</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹</a>";

         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>›</a>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>»</a>";
         echo "</div>n";
     }
}

怎么使用和一步一步的解释

早默认的page.php文件里面显示分页很简单,只需要下面的这句代码即可 
kriesi_pagination();
加上就行了.这里有两个参数你可以加: 
function kriesi_pagination($pages = '', $range = 2)

第一个是页面的数量: 这个一般在自定义循环查询文章的时候有用,下面我会解释的.第二个参数是设置显示多少链接的. 它用于控制在当前页面之前和之后所显示页面的数量然后再显示箭头. 比如默认的是2,如果你现在访问的是第一页,它就会显示后面两页然后就是箭头,大概是这个样子:

1

假如在上你想直接看到第四页的话,,并且第四页为当前页,那么前面就会显示第2、3页,后面显示第5、6页.其他的都会影藏:2

我们把最大的数据保存到分散的变量里面去:

$showitems = ($range * 2)+1;
接下来使用全局变量 $paged. WordPress默认的会把当前的页面存储到这个全局变量里面去的. 如果此变量为空的话我们就设置为1. 为什么? 因为当前的页面应该不需要在下面的分页里面再加链接了, 应该显示为"当前被访问"的.
global $paged;
if(empty($paged)) $paged = 1;
现在就得到了当前的访问页面, 不过还得得到总共有多少页. 不过你要确保没有自定义循环查询文章,也就是说 $pages在这代码之前是没有被使用的. 只有这样我们才能够再次得到最大的页码:
if($pages == '')
{
    global $wp_query;
    $pages = $wp_query->max_num_pages;
    if(!$pages)
    {
        $pages = 1;
    }
}
你看到了吧,除了一点逻辑之外我们仅仅只是使用了一个简单的 wordpress 方法 get_pagenum_link() 就搞定了,它可以通过传页码总数就能得到相应的链接地址,如: get_pagenum_link(2)  就会得到像上面所说的大于2页的时候的链接地址.按照我们上面所设定参数,现在通过一些if判断语句就可以获取那些内容需要显示. 我也经常详细得解说代码,不过赶脚在这里真的没必要了. 如果你真的想看懂上面的代码的话, 现在我也大概解释了变量的意思,所以理解去研究也不会很难:)

Css代码

css部分也很简单. 上面的默认分页大概会这样显示html: 
<div class='pagination'>
 <span class='current'>1</span>
 <a href="http://www.cnwordpress.com/blog/page/2">2</a>
 <a href="http://www.cnwordpress.com/blog/page/3">3</a>
 <a href="http://www.cnwordpress.com/blog/page/2">›</a>
 <a href="http://www.cnwordpress.com/blog/page/12">»</a>
</div>
所以也只需要简单的几句css
.pagination {
clear:both;
padding:20px 0;
position:relative;
font-size:11px;
line-height:13px;
}

.pagination span, .pagination a {
display:block;
float:left;
margin: 2px 2px 2px 0;
padding:6px 9px 5px 9px;
text-decoration:none;
width:auto;
color:#fff;
background: #555;
}

.pagination a:hover{
color:#fff;
background: #3279BB;
}

.pagination .current{
padding:6px 9px 5px 9px;
background: #3279BB;
color:#fff;
}

高级部分: 自定义文章查询

你或许可能会使用到  自定义查询 , 这个自定义查询的时候是不会默认存储在 $wp_query 对象里面的,我们之前是这么取得最大页码的:
 $pages = $wp_query->max_num_pages;
不过在自定义里面是取不到的,所以你在调用的时候就必须要传入第一个参数.简单的举例吧: 
<?php $additional_loop = new WP_Query("cat=1,2,3&paged=$paged"); ?>

<?php while ($additional_loop->have_posts()) : $additional_loop->the_post(); ?>
 <!-- 显示循环的主体部分... -->
<?php endwhile; ?>
那你就需要这样调用了:
kriesi_pagination($additional_loop->max_num_pages);

感觉使用起来很方便的,不过也不用非要使用这个,你可以使用插件哦 ;)

看到这个横幅翻页插件,我的第一印象就把它和分页插件给搞混了,呵呵,其实,它与分页插件是完全不同的,这款插件比较炫酷,此插件的效果是,在首页左/右上角掀起一个书页一般的小角,当鼠标移上去的时候,就会掀起这个角,就像翻书页一样,超酷炫的,此插件除了炫酷以外,它还具有以下作用: •你可以在掀起的页角安放AD,增加广告收入(呵呵,有点小坏哦)。 •你也可以把你的RSS订阅放页面。 •其他自己发挥想像吧,把你的靓照也可以放在里面 PageEar插件安装: 1.下载PageEar插件,将压缩包解压后,把文件夹上传到wp-content/plugins/目录下。 2.登录WordPress管理后台,点击“Plugins”找到上传的插件,激活该插件。 3.插件激活后,在“Plugins”-->“Pageear-config”中进行相关设置,页面内容如下图(点击浏览大图): 此插件的功能在上图中基本上都有说明,如果不做任何设置的话,前台就会显示默认的图片,感觉默认图片不漂亮,你可以上传自己喜欢的图片,找到合适的图片,上传到paggeear文件夹,把这个两个图片替换掉pageear_b.jpg、pageear_s.jpg就可以了,当然,如果感到登录空间麻烦,那就在后台的“Pageear-config”里上传图片就可以了,下图是笔者测试插件时,前台的翻页效果: 这么漂亮的插件,在这里要感谢我们论坛(WordPress啦论坛)的版主“qq101149488” ,给我们推荐的此款插件,而且他的博客中,还对此插件做了详细的说明(参见:Wordpress翻页效果插件Pageear ),希望广大的WordPress爱好者,也能积极的参与进来,把你所使用过的插件或者感觉比较优秀的插件,在我们的论坛推荐出来,与大家共享你的使用心得。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值