2011/07/31

調用 WP-PageNavi

安裝好 WordPress 後,我想頭 5 個 user 會想安裝的 Plugins,
其中一定有 WP-PageNavi,這個基本功能想不透為什麼 WordPress 從不內建?!
這是一個可以讓所有文章有「頁面導航介面」功能,
這比 WordPress 內建的「舊文章」往前慢慢點來的方便許多,
假設你寫了 100 篇,每頁展示 10 篇,你要翻到第 1 篇要點 10 次,
透過 WP-PageNavi 的設定,只要點 1 次就夠了...

這也是 WordPress.com 令人詬病的原因,
一些非常非常基本的功能及 Plugins 都沒有,
怎讓人有好心情寫文章下去。

但使用這個 Plugins 必須手動修改 Theme,通常都是在 loop.php 檔,
找到原始的 舊文章/新文章 程式碼:
[xml]<div class="navigation">
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>
</div>[/xml]
將之修改成 WP-PageNavi 的 PHP 函數:
[php]<?php wp_pagenavi(); ?>[/php]
但這樣寫其實不好,因為若已經在 Theme 裡寫入這個函數,
而之後停用這個 Plugins 時,Theme 又沒有改回來,
你就會發現你的網頁無法顯示全部啦!因為函數解析不到停住了,
應該改成這樣:
[php]<?php if(function_exists('wp_pagenavi')){wp_pagenavi();}?>[/php]
如果函數存在才執行,這樣在寫 Theme 給別人時,
也不會因為別人沒有裝 WP-PageNavi 外掛,
而無法展示你的 Theme 了 :)
一些 Plugins 使用到自訂的函數時,也應該這樣調用,
如此才不會出錯。

沒有留言:

張貼留言