Customizer API正在正确保存HTML/数据更改,但任何CSS更改仅在Customizer中可见。点击“保存和发布”后,页面与以前完全一样,没有新内容<style>
中的标记<head>
. 这是我在函数中声明自定义程序控件和设置的方式。php(请注意,这不是完整的代码)。
$wp_customize->add_setting(\'design-header-background-color\', array(
\'default\' => \'#ffffff\',
));
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, \'design-header-background-color\', array(
\'label\' => __( \'Background color\' ),
\'section\' => \'design-header\',
\'priority\' => 10
)));
function design_header_background_color()
{
?>
<style type="text/css">
header { background-color: <?php echo get_theme_mod(\'design-header-background-color\'); ?>; }
</style>
<?php
}
add_action( \'wp_head\', \'design_header_background_color\');
当我使用定制器中的控件时,我可以看到内容正确地更改。但在使用“保存和发布”后,什么都没有发生。正如我所说的,HTML/PHP操作工作得很好。
SO网友:user134865
好啊尽管我无法用CSS和wp\\u head()解决这个问题,但我还是设法破解了一些有用的东西。
<?php
$sidebar_background_color = get_theme_mod(\'design-sidebar-background-color\');
?>
<aside style="background-color: <?php $sidebar_background_color; ?>;">
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar() ) : ?>
<?php endif; ?>
</aside>
因为我可以很好地操作DOM和HTML,所以我决定将CSS“手动”更改为内联样式。虽然这种方法感觉很简单,但它仍然有效。
v2带<style></style>
块
<?php
$header_background_color = get_theme_mod(\'design-header-background-color\');
$header_background_image = get_theme_mod(\'design-header-background-image\');
?>
<style> /* FOR CUSTOMIZER API ONLY, DON\'T CUSTOMIZE CSS HERE */
<?php if (get_theme_mod(\'design-header-css\') === \'\') : ?>
header .page-header {
background-color: <?php echo $header_background_color; ?>;
background-image: url(\'<?php echo $header_background_image; ?>\');
}
<?php else : ?>
<?php echo get_theme_mod(\'design-header-css\'); ?>
<?php endif; ?>
</style>
<!--- HTML GOES HERE -->