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 外掛和條件標籤,你還可以在不同頁面上顯示不同型別的廣告。