You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress主题定制器:仅勾选选项时加载CSS的实现方法

解决WordPress主题定制器勾选后才加载CSS的问题

首先先修正你现有定制器代码的小问题:你用了WP_Customize_Color_Control(颜色选择控件),但控件类型设为了checkbox,这不对,应该用基础的WP_Customize_Control。另外你还需要先添加对应的设置项,完整的定制器代码应该是这样:

// 添加设置
$wp_customize->add_setting( 'accent_theme_setting', array(
    'default'           => false,
    'sanitize_callback' => 'wp_validate_boolean',
) );

// 添加复选框控件
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'enable_boxed_layout', array(
    'label'    => esc_html__( 'Enable Boxed Layout', 'Divi' ),
    'type'     => 'checkbox',
    'section'  => 'accent_theme',
    'settings' => 'accent_theme_setting',
) ) );

接下来实现勾选时加载CSS的逻辑,有两种常用方式:

方式1:加载外部CSS文件

如果你的boxed布局样式写在单独的CSS文件里(比如css/boxed-layout.css),可以用wp_enqueue_scripts钩子来判断加载:

add_action( 'wp_enqueue_scripts', 'enqueue_boxed_layout_css' );
function enqueue_boxed_layout_css() {
    // 获取定制器设置的值
    $enable_boxed = get_theme_mod( 'accent_theme_setting', false );
    
    // 如果勾选了,就加载CSS文件
    if ( $enable_boxed ) {
        wp_enqueue_style( 'boxed-layout-style', get_template_directory_uri() . '/css/boxed-layout.css', array(), wp_get_theme()->get('Version') );
    }
}

方式2:输出内联CSS

如果样式代码不多,直接输出内联CSS更高效:

add_action( 'wp_head', 'output_boxed_layout_css' );
function output_boxed_layout_css() {
    $enable_boxed = get_theme_mod( 'accent_theme_setting', false );
    
    if ( $enable_boxed ) {
        ?>
        <style type="text/css">
            /* 这里写你的boxed布局样式 */
            .site-container {
                max-width: 1200px;
                margin: 0 auto;
                padding: 0 20px;
                box-shadow: 0 0 10px rgba(0,0,0,0.1);
            }
        </style>
        <?php
    }
}

关键说明

  • get_theme_mod( 'accent_theme_setting', false ):用来获取定制器中设置的值,第二个参数是默认值(没勾选时为false)
  • 把代码放到主题的functions.php文件里,或者你的自定义功能插件中即可
  • 测试时,在主题定制器勾选选项后点击「发布」,刷新前端页面就能看到效果

内容的提问来源于stack exchange,提问作者Umer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:31:22