Widget logic 插件幫助我們實現不同的分類或頁面顯示不同側邊欄。 WordPress 本身的側邊欄功能基本都是全站調用的,這樣對於某些特殊功能需求的站點來説無法滿足需求。如何讓不同的頁面顯示不同的側邊欄呢?Widget logic 側邊欄管理插件就很好的實現了這一功能。

Widget Logic 側邊欄管理插件給每個 widget 一個擴展控制 Widget logic,你可以通過它根據不同頁面自定義你的側邊欄內,只需要在 widget 新增的 Widget logic 選項里加入相應的標記代碼,就可以輕鬆實現網站的側邊欄的管理,實現你的個性化設置。

Widget Logic 介紹 :簡單、直接,但需要簡單的寫代碼技能; 推薦

Widget Logic 是最簡單、直接的實現微件的條件控制功能的插件。這是它最大的優點,也是缺點。因為過於簡潔,需要使用者自己寫條件判斷的語句。這就需要使用者首先要熟悉 WordPress 的各種條件標籤函數的用法 —— 最少要熟悉自己需要的那幾個條件標籤的用法。正是因為使用這樣的實現方式,使用者可以發揮想象力編寫各種複雜的條件語句來實現任意複雜的條件控制。其實 WordPress 的條件標籤也很簡單,看看文檔基本上都會了。

步驟 1:添加 「最新日誌」 選項到側邊欄

登錄博客的管理後台,然後點擊小工具 (widget) 菜單,拖拽 「最新日誌」 選項到右邊的側邊欄,再設置相關標題,顯示日誌數 (例如:5),最後點 「save」 按鈕。

步驟 2:添加頁面顯示條件

在所有的小工具底部,有一個選項框,即 「widget logic」 。在這裏輸入頁面顯示條件來控制側邊欄的顯示。新手如果不懂不要緊,你可以參看下面的説明來設置: WordPress Codex – Conditional Tags

在本例中,我設定的篩選條件是 「除了首頁的所有頁面 「。因為判斷首頁的函數為:is_home(),那麼除了首頁的所有頁面的語句應該是:!is_home() 。在 widget logic 選項框中輸入這個語句,然後保存即可。

更多高級的條件判斷函數

is_single() -》 判斷是否為單篇日誌

is_page() -》 判斷是否為單個頁面

is_page(『about』) -》 判斷是否為 about 頁面

is_page(』25』) -》 判斷是否為 id=25 的頁面

is_archive() -》 判斷是否為存檔

is_category(『WordPress』) -》 判斷是否為別名是 「WordPress「的目錄

is_category(』37』) -》 判斷是否為 id=37 的目錄

has_tag (『WordPress』) -》 判斷是否存在名為 「WordPress「的標籤

你也可以使用邏輯運算符實現更多的控制。|| 為邏輯 「或」,&& 為邏輯 「與」 。

 

實例 1

在 title 為 「fruit」 的頁面或名為 「food」 的目錄頁或 tag 為 「banana」 的頁面顯示某一小工具。

is_page(『fruit』) || is_category(『food』) || has_tag(『banana』)

 

實例 2

僅在單篇日誌並且不是某一指定目錄中顯示小工具。你需要提供特定目錄的 id 號,而不能用別名或目錄名來代替。

is_single() &&!in_category( array(23,30,78))

正如我上面所説的,你可以參看相關文章來學習更復雜的條件判斷函數。

 

Widget logic 測試小技巧

如果我打算利用 widget logic 實現複雜一些的功能,一般我會把小工具拖拽到側邊欄,輸入一段純文本」hey it worked!」,然後看是否所有頁面都會顯示它。接着添加一些頁面顯示條件,如果顯示成功,説明我的語句沒問題。

為什麼要做如此麻煩的工作呢?有時候當你試圖添加一些動態廣告代碼或其它比較複雜的代碼時,一不小心就會出錯。這時候,你會茫然不知那裏出錯了。先用一段純文本進行測試,能保證你輸入的邏輯判斷語句正確。這是我每次都要做的一件工作。