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!」,然後看是否所有頁面都會顯示它。接著新增一些頁面顯示條件,如果顯示成功,說明我的語句沒問題。
為什麼要做如此麻煩的工作呢?有時候當你試圖新增一些動態廣告程式碼或其它比較複雜的程式碼時,一不小心就會出錯。這時候,你會茫然不知那裡出錯了。先用一段純文字進行測試,能保證你輸入的邏輯判斷語句正確。這是我每次都要做的一件工作。