无法让 WP Customizer Color Picker 实际更改我网站上的颜色
Having trouble getting WP Customizer Color Picker to actually change colors on my site
我正忙于在 WordPress 上开发我的第一个自定义主题。我已经转换并创建了所有文件,一切正常。原始文件基于 Bootstrap,但我已将样式表转换为不依赖。我终于到了一个地方,我想允许用户进行一些自定义,除此之外,我想添加更改主题颜色的功能。
我创建了一个单独的 customize.php 文件来处理我的定制程序代码。我还添加了 WP Color Picker 组件,它确实显示在 WP 仪表板 > 外观 > 自定义 window 中。问题是它实际上不起作用...
作为我测试的一部分,为了确保 Bootstrap 没有影响任何东西,我创建了一个 div 并给它一个自定义的 class 名称(一个不在网站上的其他任何地方找到),我给了 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';
?>
在定制器中,'Colors' 部分和拾色器可用,但选择另一种颜色没有任何作用。还可以使用附加CSS的选项,并且在选择div并给出一个自定义bg-color时进行测试,颜色确实会更改。我还在 customizer.php 中创建了另一段代码,它处理一些自定义页脚设置,例如标题文本和按钮自定义,并且工作正常。我觉得解决方案非常简单,但我只是没有看到它。任何帮助将不胜感激。
动作将是这样的:
add_action('wp_head', 'myTheme_customize_css');
你把动作名写错了。它将按预期工作。
我正忙于在 WordPress 上开发我的第一个自定义主题。我已经转换并创建了所有文件,一切正常。原始文件基于 Bootstrap,但我已将样式表转换为不依赖。我终于到了一个地方,我想允许用户进行一些自定义,除此之外,我想添加更改主题颜色的功能。
我创建了一个单独的 customize.php 文件来处理我的定制程序代码。我还添加了 WP Color Picker 组件,它确实显示在 WP 仪表板 > 外观 > 自定义 window 中。问题是它实际上不起作用...
作为我测试的一部分,为了确保 Bootstrap 没有影响任何东西,我创建了一个 div 并给它一个自定义的 class 名称(一个不在网站上的其他任何地方找到),我给了 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';
?>
在定制器中,'Colors' 部分和拾色器可用,但选择另一种颜色没有任何作用。还可以使用附加CSS的选项,并且在选择div并给出一个自定义bg-color时进行测试,颜色确实会更改。我还在 customizer.php 中创建了另一段代码,它处理一些自定义页脚设置,例如标题文本和按钮自定义,并且工作正常。我觉得解决方案非常简单,但我只是没有看到它。任何帮助将不胜感激。
动作将是这样的:
add_action('wp_head', 'myTheme_customize_css');
你把动作名写错了。它将按预期工作。