Mini Pagenavi

用幾行代碼取代了 Pagenavi 翻頁插件.
這段代碼孕育了快一年 (但有很長時間忘了它), 時而改改, 改到最後, 想不到翻頁代碼也可這麼簡單, 我自己都要懷疑.
效果看我首頁就有了, 將下列代碼 copy 到模板的 functions.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Mini Pagenavi v1.0 by Willin Kan. */
function pagenavi( $p = 2 ) { // 取當前頁前後各 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">Page: ' . $paged . ' of ' . $max_page . ' </span> '; // 頁數
  if ( $paged > $p + 1 ) p_link( 1, '最前頁' );
  if ( $paged > $p + 2 ) echo '... ';
  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 '... ';
  if ( $paged < $max_page - $p ) p_link( $max_page, '最後頁' );
}
function p_link( $i, $title = '' ) {
  if ( $title == '' ) $title = "第 {$i} 頁";
  echo "<a class='page-numbers' href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$i}</a> ";
}
// -- END ----------------------------------------

如果要顯示當前頁及總頁數, 將標注那行最前面兩斜線刪除即可.

然後在使用的地方貼上:

1
 <?php pagenavi(); ?>

括號中的參數是前後頁數, 可不加參數.
例: pagenavi(3); 就是取當前頁前後各 3 頁 (不計最前頁、最後頁及當前頁), 最大總數為 9 頁. 若不足 3 頁, 有多少取多少.
pagenavi(); 默認值為 2, 所以不加參數就是前後各取 2 頁, 最大總數為 7 頁, 一般都夠.
為了配合 css, 也許還要加 div class="navigation" 來嵌入, 這要看你的模板怎麼寫.

css 的部份是和評論翻頁 paginate_comments_links() 共用的, 可能你的模板已經有了, 沒有的話可參考我的:

1
2
3
.page-numbers {margin:10px 2px; padding:1px 8px; text-decoration:none; background:#555;}
.page-numbers:hover{background:#999; color:#111;}
.current, .current:hover{color:#555; background:#222; border:1px solid #111;}

pagenavi() 是用在 home、archive、index 的翻頁, 評論翻頁是用 paginate_comments_links(), 文章翻頁是用 wp_link_pages(), 請勿混淆.

後記: 不小心在 Mcooo Blog 發現了 Mini Pagenavi 老祖宗 -- http://mcooo.com/google-page-for-wordpress.html, Mini Pagenavi 剛開始就是由這段代碼改寫而來, 現在已是繁衍好幾代了.
 

101 篇回應 (訪客:51 篇, 博主:37 篇, 引用:13 篇)

  1. chung ~

    貌似我的主题集成了这个.

  2. 好东西,已使用

  3. 我主题对翻页不是很好,暂时都没有解决办法,郁闷

  4. 终于又可以少个插件了!!

  5. 谢谢大大的代码,我可以去掉nav了。

  6. John ~

    嗯正在使用這個. 很好 :)

  7. 晚上有時間就換掉page-nav
    使用這個。哈哈。感恩哪~

留下評論

:?: :razz: :sad: :!: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :smile: :evil:
貼圖 表情 ( ps. 若要貼代碼, 請將 "<" 改成 "&lt;" 即可, 此方法在所有 WP 網站均適用. )

Trackbacks/Pingbacks

  1. 博客升级到3.01,新的主题:DarkLight 3.0 | 沉寂号-The CThAo.com-官方站 --- 2010年 09月 03日
  2. 主题更换为Too Newsy theme | MoeSora 萌の空 --- 2010年 08月 31日
  3. Wordpress主题:DarkLight 3.0 | Alan's World --- 2010年 08月 28日
  4. 关于DarkLight主题新版本的开发 | Alan's World --- 2010年 08月 24日
  5. 小打小闹的修改 « 小居 --- 2010年 08月 12日
  6. WP翻页插件代码 --- 2010年 08月 09日
  7. Wordpress「A9」Theme by Willin Kan | 阿邙’S Blog --- 2010年 07月 17日
  8. Wordpress折腾手记 6 | A.shun's Blog --- 2010年 07月 08日
  9. 技术帖现身 | 嘿,我说 --- 2010年 07月 01日
  10. Mini Pagenavi --- 2010年 06月 25日
  11. 分页导航样式小统一 | 木木木木木 --- 2010年 06月 15日
  12. 新主题Green living上线测试. | 阿邙’S Blog --- 2010年 06月 15日
  13. wordpress版本的typecho皮肤 - 电脑网络 - typecho - wordpress theme - Winy Sky --- 2010年 06月 14日

這篇文章上的評論 RSS feed TrackBack URL