要为 WordPress 主题添加侧边栏设置功能,您需要使用 Customize API 和 WordPress 内置的小工具功能。
首先,您需要在主题的 functions.php
文件中注册一个小工具区域,例如:
register_sidebar( array(
'name' => '文章分类侧边栏',
'id' => 'category-sidebar',
'description' => '这是文章分类的侧边栏',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
) );
然后,您可以使用 customize_register
钩子和 $wp_customize
对象添加一个新的设置来选择要使用的侧边栏:
function theme_customize_register( $wp_customize ) {
$wp_customize->add_setting( 'category_sidebar', array(
'default' => 'default',
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
'transport' => 'refresh',
) );
$wp_customize->add_control( 'category_sidebar', array(
'label' => '文章分类侧边栏',
'section' => 'sidebars',
'type' => 'select',
'choices' => array(
'default' => '默认侧边栏',
'category-sidebar' => '文章分类侧边栏',
),
) );
}
add_action( 'customize_register', 'theme_customize_register' );
这会添加一个名为 “文章分类侧边栏” 的下拉菜单,用户可以在其中选择 “默认侧边栏” 或 “文章分类侧边栏”。
最后,您需要在主题的模板
文件中使用自定义设置。例如,如果要在文章分类页面上使用自定义侧边栏,可以在您的文章分类模板文件中使用以下代码:
$sidebar = get_theme_mod( 'category_sidebar', 'default' );
if ( $sidebar == 'category-sidebar' ) {
// 使用文章分类侧边栏
if ( is_active_sidebar( 'category-sidebar' ) ) {
dynamic_sidebar( 'category-sidebar' );
}
} else {
// 使用默认侧边栏
get_sidebar();
}
通常,主题会包含一个名为 sidebar.php
的文件,该文件包含侧边栏的布局和内容。您可以在此文件中使用上述代码来替换默认的侧边栏内容,以便在文章分类页面上使用自定义侧边栏。
例如,您可以将此代码放在 sidebar.php
文件的开头,然后在文章分类页面调用 sidebar.php
文件。
<?php
$sidebar = get_theme_mod( 'category_sidebar', 'default' );
if ( $sidebar == 'category-sidebar' ) {
// 使用文章分类侧边栏
if ( is_active_sidebar( 'category-sidebar' ) ) {
dynamic_sidebar( 'category-sidebar' );
}
} else {
// 使用默认侧边栏
get_sidebar();
}
当然,您也可以将此代码放在其他模板文件中,以便在其他页面使用自定义侧边栏。例如,如果要在所有文章页面上使用自定义侧边栏,则可以将代码放在 single.php
文件中。
这样,如果用户在自定义面板中选择了 “文章分类侧边栏”,则会在文章分类页面上使用自定义的侧边栏,否则将使用默认的侧边栏。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/themes/add-a-sidebar-settings-option-to-the-theme/