首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wordpress中,如何从侧边栏中删除搜索小工具

在wordpress中,如何从侧边栏中删除搜索小工具
EN

Stack Overflow用户
提问于 2014-04-02 01:25:29
回答 3查看 1.6K关注 0票数 1

$registered_sidebars = wp_get_sidebars_widgets();得到如下输出

代码语言:javascript
复制
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
            )

    )

我想从数组中删除search-2,尝试如下所示

代码语言:javascript
复制
unregister_sidebar( 'search-2' ); 

但不起作用

EN

回答 3

Stack Overflow用户

发布于 2014-04-02 01:52:05

unregister_sidebar取消注册侧边栏,而不是侧边栏小部件。“搜索-2”不是一个侧边栏,而是一个小工具。

wp_get_sidebars_widgets列出了活动的小部件。如果您想从wp_get_sidebars_widgets返回的数组中删除' search -2‘,只需转到仪表板中的外观>小部件,并从侧边栏中“删除”搜索小部件。

编辑:要隐藏特定页面上的小部件,您可以使用Display WidgetsWidget LogicJetpack等插件。

从编程角度讲,有几种选择。

你可以对不同的页面使用不同的侧边栏。您可以使用模板页面上的get_sidebar.function包含特定的侧边栏。只需输入备用侧栏名称即可。

你也可以使用'sidebars_widgets‘过滤器。

代码语言:javascript
复制
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对上面的代码稍作修改。应该防止错误。

票数 2
EN

Stack Overflow用户

发布于 2014-04-03 21:37:18

上面的解决方案很棒,但如果你不方便使用php,最简单的方法实际上是使用css,只需隐藏搜索小部件:

代码语言:javascript
复制
.widget.widget_search{ display:none; }

因此,如果你只想在主页上隐藏它,你可以使用类似这样的东西:

代码语言:javascript
复制
body.home .widget.widget_search{ display:none; }

希望本文能对您有所帮助;)

干杯,phpbits

票数 0
EN

Stack Overflow用户

发布于 2019-08-08 05:41:33

这对我很管用。从侧边栏注销所有小部件。您必须调用它一次,例如在after_switch_theme操作中

代码语言:javascript
复制
add_action('after_switch_theme', 'deregister_sidebar_widgets');
function deregister_sidebar_widgets () {   
    $sidebar_widgets = wp_get_sidebars_widgets();
    if (isset($sidebar_widgets['sidebar'])) {
       foreach($sidebar_widgets['sidebar'] as $i => $widget) {
           unset($sidebars_widgets['sidebar'][$i]);
        }
        wp_set_sidebars_widgets($sidebar_widgets);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22792725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档