谢谢Stephen今天帮我解决这个问题。尽管它很小,但我绝对讨厌开发人员用你不想要的垃圾塞满插件。在WPengine之后,我非常沮丧,告诉我它不能被删除,如果我真的想删除它,那么我需要在MU Plugins文件夹中找到该函数并删除它。从一家“Wordpress”托管公司那里听说他们的解决方案是删除代码,这与Wordpress的运行方式正好相反,这有点令人难过。
无论如何,我成功地创建了一个调试函数来打印注册的小部件。这是:
function show_widget_classes() {
global $wp_registered_widgets;
$widgets = array();
if(is_array($wp_registered_widgets)){
foreach($wp_registered_widgets as $widg){
if(!empty($widg[\'callback\'])){
if(!empty($widg[\'callback\'][0])){
$class = get_class($widg[\'callback\'][0]);
if(!array_key_exists($class, $widgets)){
$widgets[$class] = $widg[\'callback\'][0]->name;
}
}
}
}
}
foreach($widgets as $widget_class => $widget_title ){
echo \'<pre>\'; print_r( $widget_class ); echo \'</pre>\';
}
}
add_action( \'admin_notices\', \'show_widget_classes\' );
具有讽刺意味的是,wpengine\\u powered\\u是唯一一个没有出现的。起初,我认为这与过早在mu plugins文件夹中加载wpengine小部件有冲突。然而,在重新阅读您对课程的回答后:
class [Widget Class] extends WP_Widget{
...
}
我在wpengine common plugins文件夹中快速搜索了extends WP\\u小部件:
grep -nr \'extends WP_Widget\' /wpengine-common
什么都没有!因此,为了达到目的,我最终只搜索了插件,并意识到它们使用的是一个旧函数,该函数注册一个只在一个实例中包含单词的小部件。使用此方法时,不会使用类。
http://codex.wordpress.org/Function_Reference/wp_register_sidebar_widget
因此,与此相反:
unregister_widget
您可以使用以下选项:
wp_unregister_sidebar_widget
您还可以使用:
wp\\u unregister\\u widget\\u control用于使用wp\\u register\\u widget\\u控件添加控件的函数
这里是为其他对wpengines“附属”小部件感到厌烦的人删除小部件的最后一个函数。
<?php
/**
* Plugin Name: Remove WpEngine Bloat
* Plugin URI: http://wordpress.stackexchange.com/questions/147602/
* Description: Remove the affiliate links widget from the Admin Widgets Page.
* Version: 1.0
* Author: Bryan WIllis
* Author URI:
* License:
*/
function remove_unwanted_wpe_bloat_affiliate_widget_wpse_147602() {
// unregister the widget and its control
wp_unregister_sidebar_widget(\'wpe_widget_powered_by\');
}
add_action(\'widgets_init\', \'remove_unwanted_wpe_bloat_affiliate_widget_wpse_147602\', 1);
我还将在有机会时更新调试功能,并确保输出所有小部件,而不仅仅是使用类的小部件。
或者,下载https://wordpress.org/plugins/post-lists-view-custom/ 它允许您删除小部件,但是它有一些缺陷,如果您只是想删除小部件,它还添加了大量其他内容。