如何从管理面板中的小部件页面中删除Jetpack小部件

时间:2014-05-12 作者:Mayeenul Islam

NOTE: 请注意,这不是小部件可见性问题—我要的是前端。

为了向我的客户提供一个项目,我需要从管理面板中隐藏/删除Jetpack额外的侧边栏小部件-基本上我需要一个控件来专门隐藏它们,或者可以在必要时再次激活它们。

我可以藏起来(Source^) 默认小部件的代码如下:

// unregister default widgets
 function unregister_default_widgets() {
     unregister_widget(\'WP_Widget_Pages\');
     unregister_widget(\'WP_Widget_Calendar\');
     unregister_widget(\'WP_Widget_Archives\');
 }
 add_action(\'widgets_init\', \'unregister_default_widgets\', 11);
我使用JetPack有很多目的,但不想将所有JetPack额外的边栏小部件都用于编辑器帐户。

如何从后端隐藏/删除它们?

1 个回复
最合适的回答,由SO网友:Mayeenul Islam 整理而成

这并不是对插件本身的修改,它只是一种恢复已经完成的操作的方法。因此,要激活插件,有一个WordPress函数:

register_widget(\'Class_of_the_Widget\');
因为我们可以使用unregister_widget() 功能,我们也可以对JetPack插件的小部件使用相同的功能。

进入/wp-content/plugins/jetpack/modules/widgets, 您将得到大多数Jetpack插件都是从那里注册的,幸运的是,它们是按名称排序的(从版本2.9.3开始)。认为facebook-likebox.php 文件包含“Jetpack Facebook Like Box”小部件的小部件信息。

因此,其余部分与默认小部件隐藏相同,调用相同的内容:

 // unregister jetpack widgets
 function wpse140512_unregister_jetpack_widgets() {
     //hide from the \'Editor\' only
     if ( is_admin() && current_user_can(\'editor\') ) {
         unregister_widget(\'WPCOM_Widget_Facebook_LikeBox\'); //Facebook Likebox
         unregister_widget(\'Jetpack_Gravatar_Profile_Widget\'); //Gravatar Profile
     }
 }
 add_action(\'widgets_init\', \'wpse140512_unregister_jetpack_widgets\', 11);
。。。等等但我如何才能获得这些“小部件类”?

打开所有这些小部件文件并从register_widget() 作用由于小部件是在类中注册的,因此可以在同一类中注销它们。

在一个实例中查找它们的更好方法是使用智能文本编辑器Find in Folder/Files 特色假设:

在Sublime文本中:使用菜单栏的查找»在文件中查找。。。(Ctrl+Shift+F),然后查找register_widget 并浏览jetpack 文件夹/plugins 在您的/wp-content, 然后立刻找到他们这个过程几乎适用于所有情况,但有些小部件没有使用register_widget() 函数,在这种情况下,使用wp_register_sidebar_widget() 作用对于这些,您必须使用wp_unregister_sidebar_widget() 函数,但这次您在函数中传递了小部件ID,而不是小部件类。

所以,让我们旅行吧!:)

结束

相关推荐

Individual Widgets per Page

在我的Wordpress网站(仅限于页面,无帖子)中,我需要在侧边栏中放置一些静态blob。我们可以将这些“blob”称为小部件。至少他们会有一个固定的html内容,如“摘要1”、“摘要2”、“免责声明”、“foo策略”。。。我需要的是,在每一页上都有不同的安排。因此,这不仅仅是“单一”对“归档”,而是真正的“产品页面A”对“产品页面B”对“关于我们”对“服务条款”。。。我在考虑自定义元框,以便在单个编辑器页面上打开和关闭它们wp-admin/post.php?post=196&action=ed