通过 Customize API 为主题添加一个侧边栏设置功能

要为 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/

(0)
牛奇网牛奇网
上一篇 2022年12月22日 下午5:29
下一篇 2022年12月23日 上午10:48

相关推荐

发表回复

登录后才能评论