0

我正忙着在 WordPress 上开发我的第一个自定义主题。我已经转换并创建了所有文件,一切正常。原始文件基于 Bootstrap,但我已将样式表转换为不依赖。我终于到了一个我想允许用户进行一些自定义的地方,除其他外,我想添加更改主题颜色的能力。

我创建了一个单独的 customize.php 文件来处理我的定制器代码。我还添加了 WP 颜色选择器组件,它确实显示在 WP 仪表板 > 外观 > 自定义窗口中。问题是它实际上不起作用......

作为我测试的一部分,为了确保 Bootstrap 不会影响任何东西,我创建了一个 div 并给它一个自定义类名(在网站上的其他任何地方都找不到),我给了 div 一些高度和宽度,在里面,我添加了一个 p-tag 只是为了有一些内容。我想做的是创建一个部分(在定制器中),允许用户更改 div 的背景颜色

在customize.php 文件中:

<?php
function myTheme_customize_register($wp_customize){   
    $wp_customize->add_section('colors', array(       
        'title' => __('Colors', 'myTheme'),
        'priority' => 30
    ));

    $wp_customize->add_setting('bg_color', array(      
        'default' => '#f0a709',
        'transport' => 'postMessage',                     // I have also tried 'refresh'    
    ));

    $wp_customize->add_control( new WP_Customize_Color_Control ($wp_customize, 'bg_color', array(
        'label' => __('Background Color', 'myTheme'),
        'section' => 'colors',
        'settings' => 'bg_color',                        
    ))); 
}
add_action('customize_register', 'myTheme_customize_register');

在我的functions.php中:

<?php
function myTheme_customize_css(){ ?>                              
    <style type="text/css">
        .hi{
            background-color: <?php echo get_theme_mod('bg_color', '#f0a709'); ?> !important;
        }
    </style>
<?php 
}
add_action('wp-head', 'myTheme_customize_css');
require get_template_directory().'/inc/customize.php';
?>  

在定制器中,“颜色”部分和颜色选择器都可用,但选择另一种颜色没有任何作用。还可以使用其他CSS的选项,并且在选择DIV并给出自定义BG色时进行测试,颜色确实会发生变化。我还在customizer.php 中创建了另一段代码,它处理一些自定义页脚设置,例如标题文本和按钮自定义,这工作得很好。我觉得解决方案非常简单,但我只是没有看到它。任何帮助将不胜感激。

4

1 回答 1

1

动作将是这样的:

add_action('wp_head', 'myTheme_customize_css');

你写错了动作名称。它将按预期工作。

于 2020-11-23T17:04:20.537 回答