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_Widgetsubclass or an instance of aWP_Widgetsubclass.
Source
function unregister_widget( $widget ) {
global $wp_widget_factory;
$wp_widget_factory->unregister( $widget );
}
Skip to note 2 content
Codex
Example
This will un-register the built-in WP_Widget_Calendar widget (useful if you wish to replace the built-in version).
function wpdocs_remove_calendar_widget() { unregister_widget( 'WP_Widget_Calendar' ); } add_action( 'widgets_init', 'wpdocs_remove_calendar_widget' );