非插件實現WordPress分頁導航-[非插件] 實現 WordPress 分頁導航

具體的實現方法是:

1.首先在主題functions.php中加入以下代碼:

function pagenavi( $p = 5 ) { // 取當前頁前后各 2 頁
if ( is_singular() ) return; // 文章與插頁不用
global $wp_query, $paged;
$max_page = $wp_query->max_num_pages;
if ( $max_page == 1 ) return; // 只有一頁不用
if ( empty( $paged ) ) $paged = 1;
echo '<span class="pages">' . $paged . ' / ' . $max_page . '</span> '; // 顯示頁數
if ( $paged > $p + 1 ) p_link( 1, '最前頁', '首頁' );
if ( $paged > 1 ) p_link( $paged - 1, '上一頁', '&lsaquo;' );/* 如果當前頁大于1就顯示上一頁鏈接 */

for( $i = $paged - $p; $i <= $paged + $p; $i++ ) { // 中間頁
if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers current'>{$i}</span> " : p_link( $i );
}
if ( $paged < $max_page - $p - 1 ) echo '<span class="page-numbers">...</span>';
if ( $paged < $max_page ) p_link( $paged + 1,'下一頁', '&rsaquo;' );/* 如果當前頁不是最后一頁顯示下一頁鏈接 */
if ( $paged < $max_page - $p ) p_link( $max_page, '最后頁', '尾頁' );

}
function p_link( $i, $title = '', $linktype = '' ) {
if ( $title == '' ) $title = "第 {$i} 頁";
if ( $linktype == '' ) { $linktext = $i; } else { $linktext = $linktype; }
echo "<a class='page-numbers' href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a> ";
}
}

2.然后在頁面相應位置,把原來的分頁導航代碼改成以下:

<?php if (function_exists('pagenavi')) { pagenavi(); } ?>

3.這樣就已經實現了分頁導航,但此時的分頁導航還很難看,頁碼都擠在一起,所以我們需要在style.css中進行適當裝飾:

.page-numbers,.pages{width:60px;line-height: 30px;height: 28px; width: 30px;text-align: center;margin-right: 5px;display: block;float: left;color: #666;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);position: relative;border-bottom:#4F8D65 1px solid;}
span.pages{width:60px}
span.pages{width:50px;}
.page-numbers:hover{font-family: Arial, Helvetica, sans-serif; border-top:2px solid ff00a4;}
.current,.current:hover{color:#fff;background:#45b9f6;border-top:2px solid #45b9f6;}
.page-numbers a:hover,span.current{text-decoration: none;}

具體樣式可根據自己喜歡及主題修改。


[非插件] 實現 WordPress 分頁導航

話說WP自帶的就“較早文章”和“最近文章”兩個內置函數,首頁文章顯示數又有限,如果要看很早以前的,那要翻得喲~所以我們希望有一排數字,可以讓我們喜歡點哪一頁就哪一頁。目前可實現這個功能的插件太多太多,之前我使用的也曾推薦過的是:《WordPress 分頁導航插件: Paginator》。

今天分享的是用純代碼來實現分頁導航。

進入折騰步驟:

一、添加功能代碼至 functions.php(的php循環內)

function par_pagenavi($range = 9){
global $paged, $wp_query;
if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
if($max_page > 1){if(!$paged){$paged = 1;}
if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳轉到首頁'> 返回首頁 </a>";}
previous_posts_link(' 上一頁 ');
if($max_page > $range){
if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
elseif($paged >= ($max_page - ceil(($range/2)))){
for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}}
else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
next_posts_link(' 下一頁 ');
if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳轉到最后一頁'> 最后一頁 </a>";}}
}

二、添加美化代碼至主題style.css

.page_navi{width:100%;height:36px;line-height:36px;text-align:center;overflow:hidden;padding-top:1em;}
.page_navi a{padding:3px 8px;margin:2px;text-decoration:none;color:#888;border:1px solid #ccf;}
.page_navi a:hover,.page_navi a.current{border:1px solid #356aa0;color:#356aa0;font-weight:bolder;}

三、添加調用代碼至主題index.php、archive.php、category.php、search.php

<div class="page_navi"><?php par_pagenavi(9); ?></div>

搞定,又可以不用插件解決了!

 

 
  • 本文由 米粒在線 發表于 2014年1月12日13:56:29
  • 轉載請務必保留本文鏈接:http://www.bjmhhq.com/16744.html
網站建設

網站速度很慢?使用 WordPress 短時緩存(Transients)來優化數據庫查詢和 HTTP 響應!

每個人都想要一個速度很快的網站,網站速度越快,用戶停留和點擊頁面或購買產品的時間就越長,加快網站速度的方法之一是開啟緩存,而緩存背后的邏輯就是存儲信息,更具體一點說,就是找到一個比連接數據庫更快的存儲...

發表評論

匿名網友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
確定

拖動滑塊以完成驗證