WordPress 的小工具 (widget) 和插件一樣,是幫助 WordPress 擴展各項功能的有力助手之一。
然而大多數人看到 widget 時,首先想到的就是 「重新排列側邊欄各小區塊的工具」,不需要用到任何代碼。 這種想法沒錯,不過這只是 widget 用法的冰山一角罷了。
1. Widget Logic 插件

有時候你可能想讓不同的頁面上顯示不同的 widget 。 Widget Logic 插件可以幫你做到。
插件安裝完畢後,你所用的 widget 的選項框裏會多出一個 Widget Logic 的輸入框。 你可以在這個輸入框裏填寫各種 WordPress 條件標籤,來決定這個 widget 會出現在哪些頁面上。
上面的圖表示,Calendar(日曆) 小工具只出現在名為 「Evil」 的頁面上。 你可以使用多個條件標籤,使 widget 出現在多個頁面。
示例
使當前 widget 只出現在主頁上:is_home()
使當前 widget 只出現在單篇文章頁上:is_single()
使當前 widget 只出現在頁面 (page) 上:is_page()
使當前 widget 只出現在存檔頁面 (如分類頁、標籤頁):is_archive()
使當前 widget 只出現在搜索結果頁面上:is_search()
使當前 widget 出現在主頁外的所有頁面上:!is_home()
使當前 widget 出現在 「廣告」 或 「聯繫方式」 頁面上:is_page(『advertise』) || is_page(『contact』)
2. 讓博客各版塊都支持 widget

支持 widget 的主題向來比較受青睞, 不過用户們已經不滿足於主題上僅有的 widget 區域。 如果能讓頁面上的所有版塊都支持 widget,那該是多麼美妙的一件事。
關於多區域 widget,我們之前發佈過一篇簡單的教程。
3. Query Posts 工具

Query_posts 模板標籤是一個強大的 WordPress 函數,你可以在 loop 中用它來調用日誌和頁面。
如果你不瞭解 PHP 代碼但又想利用 query_posts 標籤的功能,可以使用 Query Posts 工具來調用 WordPress 日誌和頁面,並且可以以多種方式顯示這些日誌。
安裝並啓用這個小工具後,你會在後台 「小工具」 菜單裏發現一個叫做 「Query Posts」 的新選項。
Query Posts 能做什麼:
按照標籤、分類、作者、時間、日期或自定義值顯示日誌
顯示用户規定數字的日誌
根據發佈時間、標題或 ID 為日誌排序 (可升序,也可降序)
以全文、摘要或列表方式顯示日誌
顯示 WordPress 的頁面
4. 404 模板

很多 WordPress 主題 (甚至包括默認主題 Default) 的 404 模板文件都很平淡,不能提供有幫助性的信息。 例如,當你打開使用這些主題的 WordPress 網站的 404 頁面時,通常只會看到 「Error 404 – Not Found」 這樣沒有人情味的字眼。
「最近文章」 、 「分類目錄」 以及 「存檔」 等小工具都可以用到 404 頁面上。
首先需要在主題文件裏註冊一個 「404」widget 區域。 打開主題的 functions.php 文件,加入以下代碼:
register_sidebar( array(
‘name’ => ‘404’,
‘id’ => ‘404’,
‘before_widget’ => ‘

‘,
‘after_widget’ => ‘

‘,
‘before_title’ => ‘

‘,
‘after_title’ => ‘


) );
?>
這樣一個 widget 就註冊成功了,然後你需要編輯主題的 404.php 文件,在文件里加入下面的代碼:

就這麼簡單。 接下來你就可以在 「404」 小工具里加入任何 widget 了。之後每當有人訪問你的 404 頁面時,就會看到這些 widget 顯示的內容 (比如搜索框、最新發表的文章、分類目錄列表或是 Query Post 列表等) 。
5. 在兩篇文章之間插入廣告

你可以通過編輯主題在一定數量文章之間插入 widget 。 有些人就利用這種方法,在文章之間插入了廣告。
和在 404 模板裏添加 widget 一樣,首先仍然是在主題裏註冊一個 widget 區域。 打開 function.php 文件,插入下面的代碼:
register_sidebar( array(
‘name’ => ‘index-insert’,
‘id’ => ‘index-insert’,
‘before_widget’ => ‘

‘,
‘after_widget’ => ‘

‘,
‘before_title’ => ‘

‘,
‘after_title’ => ‘


) );
?>
要在索引頁的文章之間插入廣告,首先要打開主題的 index.php 文件,在結尾的 「endwhile」 附近插入下面的代碼:

以上代碼會在第二篇文章後插入 「indx-insert」 工具。你可以根據自己的需要,將 「$count==2」 中的數字 2 改成其它數字。
如果你希望在存檔頁 (分類頁、標籤頁等) 的各篇文章之間插入廣告,那麼你還需要把上面的代碼放入 archive.php 、 category.php 、 tag.php 文件中。利用 Widget Logic 插件和條件標籤,你還可以在不同頁面上顯示不同類型的廣告。