WordPress的WP_Customize_Manager
类是WordPress定制API的核心,它允许开发者在定制器中添加、管理和更新主题设置。以下是如何使用WP_Customize_Manager
类来自定义主题定制器的步骤:
1. 设置钩子
首先,你需要使用customize_register
钩子来添加你的定制选项。这个钩子会在定制器加载时执行。
add_action( 'customize_register', 'mytheme_customize_register' );
2. 定义自定义函数
然后,定义mytheme_customize_register
函数,在这个函数中,你可以使用WP_Customize_Manager
实例来添加各种定制选项。
function mytheme_customize_register( $wp_customize ) {
// 在这里添加你的定制选项
}
3. 添加设置和控件
在mytheme_customize_register
函数中,你可以添加设置和控件。以下是一些常用的方法:
添加一个设置
$wp_customize->add_setting(
'mytheme_header_color', // 设置ID
array(
'default' => '#000000', // 默认值
'transport' => 'refresh', // 更新方式,'refresh' 或 'postMessage'
)
);
添加一个控件
$wp_customize->add_control(
new WP_Customize_Color_Control( // 控件类型
$wp_customize,
'mytheme_header_color_control', // 控件ID
array(
'label' => __( 'Header Color', 'mytheme' ), // 控件标签
'section' => 'colors', // 控件所属部分
'settings' => 'mytheme_header_color', // 关联的设置ID
)
)
);
添加一个部分
$wp_customize->add_section(
'mytheme_customizer_section', // 部分ID
array(
'title' => __( 'My Theme Options', 'mytheme' ), // 部分标题
'priority' => 160, // 部分优先级
)
);
4. 输出定制CSS
在你的主题的header.php
或一个单独的CSS文件中,你可以输出定制器的CSS。
function mytheme_customize_css() {
?>
<style type="text/css">
#header { background-color: <?php echo get_theme_mod('mytheme_header_color', '#000000'); ?>; }
</style>
<?php
}
add_action( 'wp_head', 'mytheme_customize_css' );
5. 完整示例
以下是上述步骤的完整示例:
function mytheme_customize_register( $wp_customize ) {
// 添加一个部分
$wp_customize->add_section(
'mytheme_customizer_section',
array(
'title' => __( 'My Theme Options', 'mytheme' ),
'priority' => 160,
)
);
// 添加一个设置
$wp_customize->add_setting(
'mytheme_header_color',
array(
'default' => '#000000',
'transport' => 'refresh',
)
);
// 添加一个颜色控件
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'mytheme_header_color_control',
array(
'label' => __( 'Header Color', 'mytheme' ),
'section' => 'mytheme_customizer_section',
'settings' => 'mytheme_header_color',
)
)
);
}
add_action( 'customize_register', 'mytheme_customize_register' );
function mytheme_customize_css() {
?>
<style type="text/css">
#header { background-color: <?php echo get_theme_mod('mytheme_header_color', '#000000'); ?>; }
</style>
<?php
}
add_action( 'wp_head', 'mytheme_customize_css' );
通过以上步骤,你可以在WordPress定制器中添加自定义主题选项,并允许用户从后台自定义这些设置。