函数文档

unregister_widget()

💡 云策文档标注

概述

unregister_widget() 函数用于注销一个 WP_Widget 小部件,常用于移除默认小部件。必须在 'widgets_init' 钩子中调用。

关键要点

  • 注销 WP_Widget 小部件,支持传入小部件类名或实例对象
  • 参数 $widget 为必需,可以是 WP_Widget 子类名称字符串或 WP_Widget 实例
  • 必须在 'widgets_init' 动作钩子中运行以确保正确时机
  • 从 WordPress 4.6.0 开始,$widget 参数也接受 WP_Widget 实例对象

代码示例

function wpdocs_remove_calendar_widget() {
    unregister_widget( 'WP_Widget_Calendar' );
}
add_action( 'widgets_init', 'wpdocs_remove_calendar_widget' );

注意事项

  • 参考 WP_Widget_Factory::unregister() 方法实现注销逻辑
  • 常见 WP_Widget 子类包括 WP_Widget_Pages、WP_Widget_Calendar 等,列表已提供

📄 原文内容

Unregisters a widget.

Description

Unregisters a WP_Widget widget. Useful for un-registering default widgets.
Run within a function hooked to the ‘widgets_init’ action.

See also

Parameters

$widgetstring|WP_Widgetrequired
Either the name of a WP_Widget subclass or an instance of a WP_Widget subclass.

More Information

List of WP_Widget subclass names:
<br>
WP_Widget_Pages = Pages Widget<br>
WP_Widget_Calendar = Calendar Widget<br>
WP_Widget_Archives = Archives Widget<br>
WP_Widget_Links = Links Widget<br>
WP_Widget_Media_Audio = Audio Player Media Widget<br>
WP_Widget_Media_Image = Image Media Widget<br>
WP_Widget_Media_Video = Video Media Widget<br>
WP_Widget_Media_Gallery = Gallery Media Widget<br>
WP_Widget_Meta = Meta Widget<br>
WP_Widget_Search = Search Widget<br>
WP_Widget_Text = Text Widget<br>
WP_Widget_Categories = Categories Widget<br>
WP_Widget_Recent_Posts = Recent Posts Widget<br>
WP_Widget_Recent_Comments = Recent Comments Widget<br>
WP_Widget_RSS = RSS Widget<br>
WP_Widget_Tag_Cloud = Tag Cloud Widget<br>
WP_Nav_Menu_Widget = Menus Widget<br>
WP_Widget_Custom_HTML = Custom HTML Widget<br>

Source

function unregister_widget( $widget ) {
	global $wp_widget_factory;

	$wp_widget_factory->unregister( $widget );
}

Changelog

Version Description
4.6.0 Updated the $widget parameter to also accept a WP_Widget instance object instead of simply a WP_Widget subclass name.
2.8.0 Introduced.

User Contributed Notes