我不能理解这个功能--任何帮助都将不胜感激

时间:2015-02-16 作者:tsquez

好的,我正在研究一个主题,它大量使用了定制器。

例如,当您更改颜色时,必要的css将添加到标题中,但当您单击“默认”时,具有默认值的css将保留在标题中。

所以我去寻找解决方案,发现一直有一个在我鼻子底下。我在自定义标题中找到了要查找的内容。我的主题的php文件。我用了212来做这个主题,如果你能看一下的话。我采用了“TwentyEleven\\u header\\u样式”,并将其更改为:

function wpforge_customize_css() {
$header_container = esc_attr(get_theme_mod( \'header_container_background_color\' )); 
if ( $header_container == get_theme_mod( \'header_container_background_color\', \'#e6e6e6\' ) ) 
return;
?>
<!--Customizer CSS-->
<style type="text/css" id="wpforge-customizer-css">
.header_container{background-color:<?php echo $header_container; ?>;}
</style>
<!--/Customizer CSS-->
当它真正起作用时,我很惊讶。标题中没有显示自定义css,但当我在自定义程序中选择背景颜色时,标题中显示了正确的css样式。现在,当我将th值设置回默认值时,css从标题中消失了。我觉得自己很棒!!!

因此,我尝试向同一个函数添加另一个值,这就是我得到的结果:

function wpforge_customize_css() {
  $header_container = esc_attr(get_theme_mod( \'header_container_background_color\' )); 
  if ( $header_container == get_theme_mod( \'header_container_background_color\', \'#e6e6e6\' ) ) 
    return;
  $header_wrap_width = esc_attr(get_theme_mod( \'header_width\' )); 
  if ( $header_wrap_width == get_theme_mod( \'header_width\', \'64rem\' ) ) 
    return;
  ?>
<!--Customizer CSS-->
<style type="text/css" id="wpforge-customizer-css">
.header_container{background-color:<?php echo $header_container; ?>;}
.header_wrap{max-width:<?php echo $header_wrap_width; ?>;}
</style>
<!--/Customizer CSS-->
我想它工作得很好。因此,我尝试向其中添加另一个元素,发现在为其他元素之一选择某个元素之前,不会显示任何内容,这意味着我必须为标题容器选择某个元素,以便标题包装工作或显示。

我不是php专家,也无法编写一点代码来挽救我的生命,但我确实有点了解它,足以让我修补它。

所以我想知道是否有人可以告诉我如何正确地编写这个函数,这样我就可以向它添加多个项,它就会工作。我可以把这个带到哪里:

function wpforge_customize_css() {
  $header_container = esc_attr(get_theme_mod( \'header_container_background_color\' )); 
  if ( $header_container == get_theme_mod( \'header_container_background_color\', \'#e6e6e6\' ) ) 
    return;
  ?>
<!--Customizer CSS-->
<style type="text/css" id="wpforge-customizer-css">
.header_container{background-color:<?php echo $header_container; ?>;}
</style>
<!--/Customizer CSS-->
这样做:

function wpforge_customize_css() {
  $header_container = esc_attr(get_theme_mod( \'header_container_background_color\' )); 
  if ( $header_container == get_theme_mod( \'header_container_background_color\', \'#e6e6e6\' ) ) 
    return;
  $header_wrap_width = esc_attr(get_theme_mod( \'header_width\' )); 
  if ( $header_wrap_width == get_theme_mod( \'header_width\', \'64rem\' ) ) 
    return;
  ?>
<!--Customizer CSS-->
<style type="text/css" id="wpforge-customizer-css">
.header_container{background-color:<?php echo $header_container; ?>;}
.header_wrap{max-width:<?php echo $header_wrap_width; ?>;}
</style>
<!--/Customizer CSS-->
而且它不需要为header\\u容器选择一个值,这样header\\u包装器就会出现

非常感谢您的帮助,并提前向您表示感谢。

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

您的问题是,如果某些选项不符合您的标准,您将不返回任何内容。例如,您正在执行以下操作:

if ( $header_container == get_theme_mod( \'header_container_background_color\', \'#e6e6e6\' ) ) 
    return;
所以,如果$header_container 等于#e6e6e6, 功能return 并停止进一步执行。你必须改变这种逻辑。例如(只是一个简单的例子):

function wpforge_customize_css() {

    $output = \'\';

    $header_container = esc_attr(get_theme_mod( \'header_container_background_color\' )); 
    if ( $header_container != get_theme_mod( \'header_container_background_color\', \'#e6e6e6\' ) ) {
        $output = \'.header_container{background-color: \'.$header_container.\'}\';
    }

    $header_wrap_width = esc_attr(get_theme_mod( \'header_width\' )); 
    if ( $header_wrap_width != get_theme_mod( \'header_width\', \'64rem\' ) ) {
        $output = \'.header_wrap{background-color: \'.$header_wrap_width.\'}\';
    }

    if( !empty($output) ) {

    ?>
        <!--Customizer CSS-->
        <style type="text/css" id="wpforge-customizer-css">
           <?php echo $output; ?>
        </style>
        <!--/Customizer CSS-->
    <?php
    }
}
?>

结束

相关推荐

jquery issue in functions.php

我正在处理的主题中有一个问题,我不知道如何解决它。该主题有几个jquery脚本,需要加载到头部才能工作。如果没有所有这些,主题就失败了。这是我打电话给的人jquery-1.8.2。最小jsjquery-1.6.1。min.jsjquery。放松。1.3。jsjquery-ui-1.8.11。风俗min.jsjquery-ui-1.8.21。风俗最小js现在使用WordPress,我想您可以将jquery排队,然后加载所有版本。我的问题是,当我尝试这样做并删除上面的脚本时,一切都失败了。我将所有脚本放入函数