描述
接受字符串或数组,然后根据新边栏的一组默认参数对其进行解析。如果不包括这些参数,WordPress将根据当前注册的边栏数量自动生成边栏ID和名称。
当允许自动生成名称和ID参数时,请记住,边栏的增量可能会随着时间的推移而变化,具体取决于安装了哪些其他插件和主题。
如果调用此函数时尚未添加对“小工具”的主题支持,则将通过使用add_theme_support()自动启用
参数
- $args
-
(array|string) (可选) 要注册的边栏的数组或字符串参数。
- 'name'
(string) 显示在小工具界面的侧边栏的名称或标题。默认值 'Sidebar $instance' - 'id'
(string) 侧边栏将被调用的唯一标识符。默认值 'sidebar-$instance' - 'description'
(string) 边栏的描述,显示在小工具界面。默认为空字符串。 - 'class'
(string) 额外的CSS类,分配给小工具界面中的侧边栏。 - 'before_widget'
(string) 当分配给此边栏时,添加到每个小工具的HTML输出的HTML内容。接收小工具的ID属性为%1$s
,类名为%2$s
。默认是一个打开的列表项元素。 - 'after_widget'
(string) 当分配给此边栏时,要追加到每个小工具的HTML输出的HTML内容。默认是一个关闭的列表项元素。 - 'before_title'
(string) 显示时要在侧边栏标题前添加的HTML内容。默认为打开的h2元素。 - 'after_title'
(string) 显示时要追加到侧边栏标题的HTML内容。默认为关闭的h2元素。 - 'before_sidebar'
(string) 显示时,添加到边栏的 HTML 内容。接收$id
参数为%1$s
,接收$class
为%2$s
,在 ‘dynamic_sidebar_before’ 动作钩子之后输出,默认为空字符串。 - 'after_sidebar'
(string) 显示时,追加到边栏的 HTML 内容。在 ‘dynamic_sidebar_after’ 动作钩子之前输出,默认为空字符串。 - 'show_in_rest'
(bool) 是否在REST API中公开显示这个侧边栏。默认情况下,只向管理员用户显示侧边栏。
默认值: array()
- 'name'
返回
(string) 边栏ID添加到 $wp_registered_sidebars 全局变量。
源码
更新日志
版本 | 描述 |
---|---|
5.9.0 | 添加了show_in_rest 参数 |
5.6.0 | 添加了before_sidebar 和after_sidebar 参数 |
2.2.0 | 开始引入 |
使用示例
本例创建了一个名为“Main sidebar”的边栏,标题前后都有。
/** * Add a sidebar. */ function wpdocs_theme_slug_widgets_init() { register_sidebar( array( 'name' => __( 'Main Sidebar', 'textdomain' ), 'id' => 'sidebar-1', 'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'textdomain' ), 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'wpdocs_theme_slug_widgets_init' );
输出注册的边栏:
<?php if ( is_active_sidebar( 'your-sidebar-slug' ) ) { ?> <ul id="sidebar"> <?php dynamic_sidebar('your-sidebar-slug'); ?> </ul> <?php } ?>
/* Better way to add multiple widgets areas */ function widget_registration($name, $id, $description,$beforeWidget, $afterWidget, $beforeTitle, $afterTitle){ register_sidebar( array( 'name' => $name, 'id' => $id, 'description' => $description, 'before_widget' => $beforeWidget, 'after_widget' => $afterWidget, 'before_title' => $beforeTitle, 'after_title' => $afterTitle, )); } function multiple_widget_init(){ widget_registration('Footer widget 1', 'footer-sidebar-1', 'test', '', '', '', ''); widget_registration('Footer widget 2', 'footer-sidebar-2', 'test', '', '', '', ''); // ETC... } add_action('widgets_init', 'multiple_widget_init');
/* Add Multiple sidebar */ if ( function_exists('register_sidebar') ) { $sidebar1 = array( 'before_widget' => '<div class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', 'name'=>__( 'My sidebar 1', 'textdomain' ), ); $sidebar2 = array( 'before_widget' => '<div class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', 'name'=>__( 'My sidebar 2', 'textdomain' ), ); $sidebar3 = array( 'before_widget' => '<div class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', 'name'=>__( 'My sidebar 3', 'textdomain' ), ); $sidebar4 = array( 'before_widget' => '<div class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', 'name'=>__( 'My sidebar 4', 'textdomain' ), ); register_sidebar($sidebar1); register_sidebar($sidebar2); register_sidebar($sidebar3); register_sidebar($sidebar4); }