2014-04-01 81 views
0

$ registered_sidebars = wp_get_sidebars_widgets();得到這樣在wordpress中,如何從側邊欄刪除搜索小部件

Array 
    (
     [sidebar] => Array 
      (
       [0] => search-2 
       [1] => recent-posts-2 
       [2] => recent-comments-2 
       [3] => archives-2 
       [4] => categories-2 
       [5] => meta-2 
       [6] => advanced_sidebar_menu_category-2 
       [7] => advanced_sidebar_menu-3 
      ) 

    ) 

輸出我想從數組中刪除搜索-2,嘗試這樣

unregister_sidebar('search-2'); 

但不工作

+1

只需在wordpress後端去「外觀>小部件」,並刪除搜索小部件 –

+0

僅用於搜索結果頁面,需要所有其他頁面 – YasirPoongadan

回答

1

unregister_sidebar註銷側邊欄,側邊欄不小部件。 '搜索2'不是一個側欄,而是一個小部件。

wp_get_sidebars_widgets列出了活動小部件。如果您想要從wp_get_sidebars_widgets返回的數組中移除「search-2」,只需在儀表板中點擊外觀>小部件,然後從側邊欄中「刪除」搜索小部件即可。

編輯:隱藏特定頁面上的小工具,你可以使用插件像Display WidgetsWidget Logic,或Jetpack

程序化的盟友有幾種選擇。

您可以爲不同的頁面使用不同的側邊欄。您可以使用模板頁面上的get_sidebar .function包含特定的側欄。只需輸入備用側欄名稱即可。

您也可以使用'sidebars_widgets'過濾器。

add_filter('sidebars_widgets', 'disable_search_widget'); 

function disable_search_widget($sidebars_widgets) { 

    if (is_home() && is_array($sidebars_widgets['primary-widget-area'])) { 
      foreach($sidebars_widgets['primary-widget-area'] as $i => $widget) { 
       if(strpos($widget, 'search-2') !== false) { 
        unset($sidebars_widgets['primary-widget-area'][$i]); 
       } 
      } 

    } 

    return $sidebars_widgets; 
} 

編輯2輕微變化到上面的代碼。應該防止錯誤。

+0

刪除僅用於搜索結果頁面,所有其他頁面搜索-2需要 – YasirPoongadan

+0

幫助您? – r00tAcc3ss

+0

獲取錯誤,如警告:爲foreach提供的無效參數() – YasirPoongadan

0

上述解決方案是偉大的,但如果你不使用PHP的方便,最簡單的方法其實是使用CSS,只是隱藏搜索小工具:

.widget.widget_search{ display:none; } 

所以,如果你想隱藏它的主頁不僅可以使用這樣的事情:

body.home .widget.widget_search{ display:none; } 

希望這會幫助你;)

乾杯, phpbits

相關問題