默认的定制器颜色不会显示在预览之外

时间:2020-05-14 作者:Jeff W

我一直在研究一个自定义主题&;完成这项特殊练习通常伴随的过山车。我确实觉得这很有价值,但我现在看到的是主题在安装时无法强制执行定义的默认颜色。我的设置方式是我需要inc/customizer。php文件,下面是一个控件示例,这些控件可以工作,但默认情况下不会加载,必须首先对其进行调整:

    $wp_customize->add_setting(\'link_colors\', array(
        \'default\' => \'#e66998\',
        \'sanitize_callback\' => \'esc_attr\',
    ));

    $wp_customize->add_control( 
    new WP_Customize_Color_Control( 
        $wp_customize, 
        \'link_colors\', 
        array(
        \'label\' => \'Body Link Colors\',
        \'description\' => \'This will change the color of links on your pages but not the navigation menu.\',
        \'section\' => \'background_image\',
        \'settings\' => \'link_colors\',
        \'priority\' => 4
    ) 
    ));
是的,在我想要的控制区。下面是我如何使用这一点的一个示例,包括customizer\\u样式。头文件中的php:

<style type="text/css">
#container a,
.widget-container a {
    color: <?php echo get_theme_mod(\'link_colors\') ;?>;
    }
</style>
虽然它在自定义程序预览中显示正确,但在初始主题安装时,它会在前端显示浏览器的默认蓝色文本。修改颜色有效(&A);如果在自定义程序中恢复为默认设置,它将按预期显示,而不是从头开始显示。我错过了什么?

1 个回复
最合适的回答,由SO网友:Jeff W 整理而成

我最终使用了默认的样式表规则,这是我一路上删除的,然后本质上,当用户使用定制器修改颜色时,它会覆盖样式表规则。

我觉得这样做有点马虎,但确实达到了预期的效果。不过,从我所看到的情况来看,没有其他方法可以启用默认规则,因为据我所知,主题定制器会将用户的值写入DB&;只有在修改各个设置后才会发生这种情况。