教你不用插件實現(xiàn)WordPress主題分頁功能
說到wordpress,使用時間也一年多了,雖然這個程序自身不具備純靜態(tài)功能,但是他的偽靜態(tài)功能也不錯,再加上設(shè)置的自由,我還是比較喜歡的,有可能是設(shè)置的隨意性比較靈活吧,相對來說還是比較符合SEO優(yōu)化的,總是對wordpress情有獨鐘,但是也有不盡人意的地方,今天我們就來分享一個小知識點,如果你也喜歡,一起來研究一下吧。
wordpress程序的網(wǎng)站默認(rèn)主題是沒有分頁功能的,這使得網(wǎng)站首頁篇幅相當(dāng)大,給人造成一種感覺,就是一個博客站,雖然有分隔標(biāo)簽可以隱藏一部分在首頁顯示的內(nèi)容,但是文章數(shù)量多了頁面篇幅一樣會很長,那么有沒有辦法讓首頁實現(xiàn)想看后面的文章不用拉得很靠下面就可以看到呢?有,做個首頁分頁就可以了。通過一些插件可以實現(xiàn),但是網(wǎng)站插件安裝多了必然會影響加載速度。
越少的使用插件,卻能讓使用者完全體驗到主題的各項功能,才是真正好的主題,這也是所有主題設(shè)計者應(yīng)考慮的問題,本站目前的新主題基本實現(xiàn)了零插件。網(wǎng)上不使用插件實現(xiàn)WordPress功能的文章也很多,今天再補(bǔ)一個不使用插件實現(xiàn)翻頁功能的函數(shù)代碼。
WordPress默認(rèn)翻頁功能很弱,一頁頁翻,弄到你手麻,所以類似wp-pagenavi翻頁插件,幾乎是WordPress博客必裝的插件,也是普及率很高的一款插件。
雖然網(wǎng)上有如何把wp-pagenavi插件集成到WordPress主題的教程,但wp-pagenavi插件函數(shù)代碼拖沓,只是變相啟用插件而已,并沒有真正脫離wp-pagenavi插件。下面一段輕量級的函數(shù),加上寥寥數(shù)行css樣式就可以完全替代分頁插件了。
具體實現(xiàn)方法:
首先將下面一段函數(shù)代碼添加到主題的functions.php模板文件中:
- function kriesi_pagination($query_string){
- global $posts_per_page, $paged;
- $my_query = new WP_Query($query_string ."&posts_per_page=-1");
- $total_posts = $my_query->post_count;
- if(empty($paged))$paged = 1;
- $prev = $paged - 1;
- $next = $paged + 1;
- $range = 2;
- $showitems = ($range * 2)+1;
-
- $pages = ceil($total_posts/$posts_per_page);
- if(1 != $pages){
- echo "<div class='pagination'>";
- echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href='".get_pagenum_link(1)."'>最前</a>":"";
- echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."'>上一頁</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>";
- }
- }
-
- echo ($paged < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($next)."'>下一頁</a>" :"";
- echo ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."'>最后</a>":"";
- echo "</div>\n";
- }
- }
接下來用下面的代碼替換原來模板中默認(rèn)翻頁代碼或分頁插件代碼:
- <?php kriesi_pagination($query_string); ?>
最后再把下面的樣式代碼添加到style.css中,刷新一下頁面,與使用插件實現(xiàn)的翻頁效果一樣。
- .pagination{
- line-height:23px;
- }
- .pagination span, .pagination a{
- font-size:12px;
- margin: 2px 6px 2px 0;
- background:#fff;
- border:1px solid #e5e5e5;
- color:#787878;
- padding:2px 5px 2px 5px;
- text-decoration:none;
- }
- .pagination a:hover{
- background: #8391A7;
- border:1px solid #fff;
- color:#fff;
- }
- .pagination .current{
- background: #fff;
- border:1px solid #8d8d8d;
- color:#393939;
- font-size:12px;
- padding:2px 5px 2px 5px;
- }
上面的樣式是我目前用的主題樣式,根據(jù)不同的主題修改一下邊框與背景,基本就可以了,做好之后就可以刪除你的分頁插件,試一下吧!