2014-04-01 87 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

相关问题