侧栏是主题的任何窗口小部件区域。小部件区域是主题中用户可以添加自己的小部件的位置。您不需要在主题中包含侧边栏,但是包含侧边栏意味着用户可以通过“定制程序”或“微件管理面板”将内容添加到微件区域。
小工具可用于多种目的,从列出最近的帖子到进行实时聊天。
- 官方文档:wordpress
快速开始:
在functions.php中添加以下代码:
function lifet_widgets_init() {
register_sidebar( array(
'name' => esc_html__( '小工具', 'lifet' ),
'id' => 'sidebar-1',
'description' => esc_html__( '添加小工具到这里', 'lifet' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'lifet_widgets_init' );
在需要调用的地方添加以下代码:
<?php dynamic_sidebar( 'sidebar-1' ); ?>
自定义侧边栏:
添加下列代码到functions.php 文件中第一个<?php 之后:
function xitou_widgets_init2() {
register_sidebar( array(
'name' => esc_html__( 'Sidebar-single', 'xitou' ),
'id' => 'sidebar-2',
'description' => esc_html__( ' Sidebar of single', 'xitou' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'xitou_widgets_init2' );
在主题的根目录创建文件夹sidebar,在sidebar 文件夹内创建名为:sidebar-single.php 文件,填入下列代码:
<?php
/**
*
* Single页的工具栏
*
* @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
*
* https://developer.wordpress.org/themes/functionality/sidebars/
*
* @package xitou
*/
if ( ! is_active_sidebar( 'sidebar-2' ) ) {
return;
}
?>
<aside id="secondary" class="widget-area">
<?php dynamic_sidebar( 'sidebar-2' ); ?>
</aside><!-- #secondary -->
在single.php 中相应位置添加下列代码调用:
<?php dynamic_sidebar( 'sidebar/single' );?>
官方文档:
- 添加侧边栏:官方文档
小部件可用于多种目的,从列出最近的帖子到进行实时聊天。
注册侧边栏
要使用侧边栏,您必须在中注册它们functions.php
。
首先,register_sidebar()
有几个应始终定义的参数,无论它们是否被标记为可选参数。这些包括x,y和z。
- 名称 -侧边栏的名称。这是用户将在“窗口小部件”面板中看到的名称。
- id –必须为小写。您将使用
dynamic_sidebar
函数在主题中调用它。 - description-边栏的描述。这也将显示在管理窗口小部件面板中。
- class –分配给小部件的HTML的CSS类名称。
- before_widget –每个小部件之前放置的HTML。
- after_widget –放置在每个小部件之后的HTML。应该用来关闭中的标签
before_widget
。 - before_title –放在每个小部件标题之前的HTML,例如标头标记。
- after_title –每个标题之后的HTML。应该用来关闭中的标签
before_title
。
要注册侧边栏,我们使用register_sidebar
和widgets_init
函数。
function themename_widgets_init() {
register_sidebar( array(
'name' => __( 'Primary Sidebar', 'theme_name' ),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
register_sidebar( array(
'name' => __( 'Secondary Sidebar', 'theme_name' ),
'id' => 'sidebar-2',
'before_widget' => '<ul><li id="%1$s" class="widget %2$s">',
'after_widget' => '</li></ul>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
}
注册侧边栏告诉WordPress,您正在“ 外观”>“窗口小部件”中创建一个新的窗口小部件区域,用户可以将其窗口小部件拖动到其中。有两个注册边栏的功能:
第一个让您注册一个侧边栏,第二个让您注册多个侧边栏。
建议您单独注册侧边栏,因为它可以为每个侧边栏赋予唯一的描述性名称。
范例
对于页眉和页脚中的窗口小部件区域,将它们命名为“ Header Widget Area”和“ Footer Widget Area”,而不是“ Sidebar 1”和“ Sidebar 2”(默认设置)。这提供了有关侧边栏位置的有用描述。
添加了以下代码以functions.php
注册边栏:
add_action( 'widgets_init', 'my_register_sidebars' );
function my_register_sidebars() {
/* Register the 'primary' sidebar. */
register_sidebar(
array(
'id' => 'primary',
'name' => __( 'Primary Sidebar' ),
'description' => __( 'A short description of the sidebar.' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
)
);
/* Repeat register_sidebar() code for additional sidebars. */
}
该代码执行以下操作:
register_sidebar
–告诉WordPress您正在注册边栏'name' => __( 'Primary Widget Area', 'mytheme' ),
–是在“外观”>“小部件”中显示的小部件区域的名称'id' => 'sidebar-1'
–为边栏分配一个ID。WordPress使用“ id”将小部件分配给特定的侧边栏。before_widget
/after_widget
–分配给边栏的小部件的包装器元素。应该始终分别保留“%1 $ s”和“%2 $ s”id
,class
以便插件可以使用它们。默认情况下,WordPress将这些设置为列表项,但在以上示例中,它们已更改为div。before_title
/after_title
–小部件标题的包装元素。默认情况下,WordPress将其设置为h2,但使用h3使其更具语义。
一旦注册了侧边栏,便可以在主题中显示它。
在主题中显示侧边栏
现在您的侧边栏已注册,您将想要在主题中显示它们。为此,有两个步骤:
- 创建
sidebar.php
模板文件并使用dynamic_sidebar
功能显示侧边栏 - 使用
get_sidebar
功能加载主题
创建侧边栏模板文件
侧栏模板包含侧栏的代码。WordPress可以识别名称为的文件 sidebar.php
和任何模板文件sidebar-{name}.php
。这意味着您可以使用每个侧边栏将其组织在自己的模板文件中。
示例:
1.建立 sidebar-primary.php
2.添加以下代码:
<div id="sidebar-primary" class="sidebar">
<?php dynamic_sidebar( 'primary' ); ?>
</div>
请注意,它dynamic_sidebar
采用的单个参数$index
,该参数可以是边栏的名称或ID。
加载侧边栏
要将侧栏加载到主题中,请使用 get_sidebar
函数。应该将其插入到要显示边栏的模板文件中。要加载默认值,请sidebar.php
使用以下命令:
<?php get_sidebar(); ?>
要显示主要侧边栏,请将$name
参数传递给函数:
<?php get_sidebar( 'primary' ); ?>
显示默认边栏内容
如果用户尚未向侧边栏添加任何小部件,则可能希望显示内容。为此,您可以使用该is_sidebar_active()
功能检查边栏是否有任何小部件。这接受$index
参数,该参数应该是您要检查的侧边栏的ID。
此代码检查侧边栏是否处于活动状态,如果未激活,则显示一些内容:
<div id="sidebar-primary" class="sidebar">
<?php if ( is_active_sidebar( 'primary' ) ) : ?>
<?php dynamic_sidebar( 'primary' ); ?>
<?php else : ?>
<!-- Time to add some widgets! -->
<?php endif; ?>
</div>
显示默认小部件
您可能希望默认情况下在侧边栏中填充一些小部件。例如,显示搜索,存档和元窗口小部件。为此,您可以使用:
</p>
<div id="primary" class="sidebar">
<?php do_action( 'before_sidebar' ); ?>
<?php if ( ! dynamic_sidebar( 'sidebar-primary' ) ) : ?>
<aside id="search" class="widget widget_search">
<?php get_search_form(); ?>
</aside>
<aside id="archives" class"widget">
<h3 class="widget-title"><?php _e( 'Archives', 'shape' ); ?></h3>
<ul>
<?php wp_get_archives( array( 'type' => 'monthly' ) ); ?>
</ul>
</aside>
<aside id="meta" class="widget">
<h3 class="widget-title"><?php _e( 'Meta', 'shape' ); ?></h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</aside>
<?php endif; ?>
</div>