wp_register_sidebar_widget()
wp_register_sidebar_widget( int|string $id, string $name, callable $output_callback, array $options = array(), mixed $params )
注册小部件的实例。
Register an instance of a widget.
说明(Description)
默认的widget选项是可以重写的“classname”。当$output_callback参数为空字符串时,该函数还可用于取消注册小部件。
源码(Source)
/** * Register an instance of a widget. * * The default widget option is 'classname' that can be overridden. * * The function can also be used to un-register widgets when `$output_callback` * parameter is an empty string. * * @since 2.2.0 * * @global array $wp_registered_widgets Uses stored registered widgets. * @global array $wp_register_widget_defaults Retrieves widget defaults. * @global array $wp_registered_widget_updates * @global array $_wp_deprecated_widgets_callbacks * * @param int|string $id Widget ID. * @param string $name Widget display title. * @param callback $output_callback Run when widget is called. * @param array $options { * Optional. An array of supplementary widget options for the instance. * * @type string $classname Class name for the widget's HTML container. Default is a shortened * version of the output callback name. * @type string $description Widget description for display in the widget administration * panel and/or theme. * } */ function wp_register_sidebar_widget( $id, $name, $output_callback, $options = array() ) { global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates, $_wp_deprecated_widgets_callbacks; $id = strtolower($id); if ( empty($output_callback) ) { unset($wp_registered_widgets[$id]); return; } $id_base = _get_widget_id_base($id); if ( in_array($output_callback, $_wp_deprecated_widgets_callbacks, true) && !is_callable($output_callback) ) { unset( $wp_registered_widget_controls[ $id ] ); unset( $wp_registered_widget_updates[ $id_base ] ); return; } $defaults = array('classname' => $output_callback); $options = wp_parse_args($options, $defaults); $widget = array( 'name' => $name, 'id' => $id, 'callback' => $output_callback, 'params' => array_slice(func_get_args(), 4) ); $widget = array_merge($widget, $options); if ( is_callable($output_callback) && ( !isset($wp_registered_widgets[$id]) || did_action( 'widgets_init' ) ) ) { /** * Fires once for each registered widget. * * @since 3.0.0 * * @param array $widget An array of default widget arguments. */ do_action( 'wp_register_sidebar_widget', $widget ); $wp_registered_widgets[$id] = $widget; } }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
5.3.0 | wp-includes/widgets.php | 6 | 13 |
笔记(Notes)
例子
wp_register_sidebar_widget() 为WP2原创文章,链接:https://www.wp2.cn/functions/wp_register_sidebar_widget/