Completely disabling widgets

时间:2011-03-24 作者:onetrickpony

如何从主题/插件中完全删除小部件支持?

比如删除“外观->小部件”页面,防止WP加载小部件类和所有与小部件相关的内容。

4 个回复
最合适的回答,由SO网友:Dillie-O 整理而成

一种选择是简单地将小部件代码从侧栏中清除出来。php文件,以及使用小部件的页眉/页脚/贴子页。

但是,请看一下此代码片段(由this site), 可以将其添加到函数中。php文件,并将禁用小部件。我认为,如果您希望更改主题并且禁用小部件,那么这将是一种更干净的方法。

<?php 
   add_filter( ‘sidebars_widgets’, ‘disable_all_widgets’ ); 
   function disable_all_widgets( $sidebars_widgets ) 
   { 
      if ( is_home() ) $sidebars_widgets = array( false ); 
      return $sidebars_widgets; 
   } 
?>
请注意,这只会禁用主页上的小部件,因此您需要为各个页面/帖子等找到附加条件。

SO网友:kaiser

如果您使用widgets.php, 那么就这么简单了:

    // final function makes most sense
    // (useing stuff like `$GLOBALS[\'wp_widget_factory\']` will do nothing better than this ex.)
   // place inside your functions.php  

    unregister_widget( \'some widget\' );

    // if my search results are right, these should be the available default widgets 
    // from /wp-includes/widgets.php
    Line 389:   \'wp_widget_pages\',
    Line 390:   \'wp_widget_pages_control\',
    Line 391:   \'wp_widget_calendar\',
    Line 392:   \'wp_widget_calendar_control\',
    Line 393:   \'wp_widget_archives\',
    Line 394:   \'wp_widget_archives_control\',
    Line 395:   \'wp_widget_links\',
    Line 396:   \'wp_widget_meta\',
    Line 397:   \'wp_widget_meta_control\',
    Line 398:   \'wp_widget_search\',
    Line 399:   \'wp_widget_recent_entries\',
    Line 400:   \'wp_widget_recent_entries_control\',
    Line 401:   \'wp_widget_tag_cloud\',
    Line 402:   \'wp_widget_tag_cloud_control\',
    Line 403:   \'wp_widget_categories\',
    Line 404:   \'wp_widget_categories_control\',
    Line 405:   \'wp_widget_text\',
    Line 406:   \'wp_widget_text_control\',
    Line 407:   \'wp_widget_rss\',
    Line 408:   \'wp_widget_rss_control\',
    Line 409:   \'wp_widget_recent_comments\',
    Line 410:   \'wp_widget_recent_comments_control\'

SO网友:theck

remove_theme_support(\'widgets\') 无法工作,因为:

function remove_theme_support( $feature ) {
// Blacklist: for internal registrations not used directly by themes.
if ( in_array( $feature, array( \'editor-style\', \'widgets\', \'menus\' ) ) )
    return false;

return _remove_theme_support( $feature );
}

SO网友:Jan Fabry

“Widgets”菜单项is added by wp_widgets_add_menu(), 在_admin_menuas set up by wp_maybe_load_widgets(). 您可以通过将其从_admin_menu 或为返回falseload_default_widgets.

您还可以按照Bainternet的建议注销所有侧栏,并且remove_theme_support( \'widgets\' ).

结束

相关推荐

如何保护wp-admin免受第三方访问?

wordpress管理面板和登录页面wp如何登录。php是否被隐藏,以便只有网站管理员才能访问?URL是否可以通过某种mod\\u重写规则重写,而不用担心破坏任何东西(抛开所有插件)?最好的解决方案不应基于IP地址,这意味着管理员只能从一台或一组计算机访问网站。