register_sidebar()

为单个边栏生成定义并返回ID。

register_sidebar( array|string $args = array() )

说明(Description)

接受字符串或数组,然后根据新侧边栏的一组默认参数解析该字符串或数组。如果不包含这些参数,WordPress将根据当前注册的边栏数量自动生成边栏ID和名称。

当允许自动生成名称和ID参数时,请记住侧边栏的incrementor可能会随着时间的推移而改变,这取决于安装了哪些其他插件和主题。

如果调用此函数时尚未添加对“widgets”的主题支持,则将通过使用add_theme_support()自动启用它


返回(Return)

(string)边栏ID添加到$wp_registered_sidebars global。


源码(Source)


/**
 * Builds the definition for a single sidebar and returns the ID.
 *
 * Accepts either a string or an array and then parses that against a set
 * of default arguments for the new sidebar. WordPress will automatically
 * generate a sidebar ID and name based on the current number of registered
 * sidebars if those arguments are not included.
 *
 * When allowing for automatic generation of the name and ID parameters, keep
 * in mind that the incrementor for your sidebar can change over time depending
 * on what other plugins and themes are installed.
 *
 * If theme support for 'widgets' has not yet been added when this function is
 * called, it will be automatically enabled through the use of add_theme_support()
 *
 * @since 2.2.0
 *
 * @global array $wp_registered_sidebars Stores the new sidebar in this array by sidebar ID.
 *
 * @param array|string $args {
 *     Optional. Array or string of arguments for the sidebar being registered.
 *
 *     @type string $name          The name or title of the sidebar displayed in the Widgets
 *                                 interface. Default 'Sidebar $instance'.
 *     @type string $id            The unique identifier by which the sidebar will be called.
 *                                 Default 'sidebar-$instance'.
 *     @type string $description   Description of the sidebar, displayed in the Widgets interface.
 *                                 Default empty string.
 *     @type string $class         Extra CSS class to assign to the sidebar in the Widgets interface.
 *                                 Default empty.
 *     @type string $before_widget HTML content to prepend to each widget's HTML output when
 *                                 assigned to this sidebar. Default is an opening list item element.
 *     @type string $after_widget  HTML content to append to each widget's HTML output when
 *                                 assigned to this sidebar. Default is a closing list item element.
 *     @type string $before_title  HTML content to prepend to the sidebar title when displayed.
 *                                 Default is an opening h2 element.
 *     @type string $after_title   HTML content to append to the sidebar title when displayed.
 *                                 Default is a closing h2 element.
 * }
 * @return string Sidebar ID added to $wp_registered_sidebars global.
 */
function register_sidebar($args = array()) {
	global $wp_registered_sidebars;
	$i = count($wp_registered_sidebars) + 1;
	$id_is_empty = empty( $args['id'] );
	$defaults = array(
		'name' => sprintf(__('Sidebar %d'), $i ),
		'id' => "sidebar-$i",
		'description' => '',
		'class' => '',
		'before_widget' => '',
		'after_widget' => "
",
		'before_title' => '',
		'after_title' => "
",
	);
	$sidebar = wp_parse_args( $args, $defaults );
	if ( $id_is_empty ) {
		/* translators: 1: the id argument, 2: sidebar name, 3: recommended id value */
		_doing_it_wrong( __FUNCTION__, sprintf( __( 'No %1$s was set in the arguments array for the "%2$s" sidebar. Defaulting to "%3$s". Manually set the %1$s to "%3$s" to silence this notice and keep existing sidebar content.' ), 'id', $sidebar['name'], $sidebar['id'] ), '4.2.0' );
	}
	$wp_registered_sidebars[$sidebar['id']] = $sidebar;
	add_theme_support('widgets');
	/**
	 * Fires once a sidebar has been registered.
	 *
	 * @since 3.0.0
	 *
	 * @param array $sidebar Parsed arguments for the registered sidebar.
	 */
	do_action( 'register_sidebar', $sidebar );
	return $sidebar['id'];
}
更新版本源码位置使用被使用
2.2.0wp-includes/widgets.php:2471 function8

笔记(Notes)

要输出注册侧边栏:
本例创建了一个名为“Main sidebar”的侧边栏,标题前后都有。
边栏id必须小写!(没有空格)

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索