定制器:在定制器CSS中输出默认值

时间:2018-07-22 作者:Troy Templeman

我在WordPress中看到了下面的代码Theme Customization API 以及在head. 它工作得很好,但我想知道如果没有为提供值,是否可以修改它以显示默认值header_textcolor, background_colorlink_textcolor.

public static function header_output() {
  ?>
  <!--Customizer CSS--> 
  <style type="text/css">
       <?php self::generate_css(\'#site-title a\', \'color\', \'header_textcolor\', \'#\'); ?> 
       <?php self::generate_css(\'body\', \'background-color\', \'background_color\', \'#\'); ?> 
       <?php self::generate_css(\'a\', \'color\', \'link_textcolor\'); ?>
  </style> 
  <!--/Customizer CSS-->
  <?php
}

public static function generate_css( $selector, $style, $mod_name, $prefix=\'\', $postfix=\'\', $echo=true ) {
  $return = \'\';
  $mod = get_theme_mod($mod_name);
  if ( ! empty( $mod ) ) {
     $return = sprintf(\'%s { %s:%s; }\',
        $selector,
        $style,
        $prefix.$mod.$postfix
     );
     if ( $echo ) {
        echo $return;
     }
  }
  return $return;
}

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

具有默认值的步骤get_theme_mod() 可以将其作为第二个参数传递,如下所示:

$mod = get_theme_mod( \'header_textcolor\', \'#000000\' );
这将输出#000000 如果没有为保存值header_textcolor.

自从你get_theme_mod() 调用是从另一个函数获取设置,generate_css(), 您需要更新该函数以同时发送默认值:

public static function generate_css( $selector, $style, $mod_name, $default, $prefix=\'\', $postfix=\'\', $echo=true ) {
    $return = \'\';
    $mod = get_theme_mod( $mod_name, $default );
我在之后添加了它$mod_name 在那个例子中。

然后你会更新你的header_output() 包含默认值的函数:

public static function header_output() {
  ?>
  <!--Customizer CSS--> 
  <style type="text/css">
       <?php self::generate_css(\'#site-title a\', \'color\', \'header_textcolor\', \'#000000\', \'#\'); ?> 
       <?php self::generate_css(\'body\', \'background-color\', \'background_color\', \'#FFFFFF\', \'#\'); ?> 
       <?php self::generate_css(\'a\', \'color\', \'link_textcolor\', \'#0000FF\' ); ?>
  </style> 
  <!--/Customizer CSS-->
  <?php
}
现在这些颜色有了默认值。

我认为值得指出的是,如果主题mod没有值,那么您的代码将不会输出任何CSS。这意味着默认样式将来自您的样式表。所以我不确定这里是否有必要设置默认值。

结束

相关推荐

对于home_url/某些页面URL,会调用什么php?

对于大多数专家来说,这听起来很愚蠢,但对于初学者来说,这到底是什么还不清楚。访问home_url/year/month URL。例如domain.com/2018/05 显示该特定月份的所有帖子。显然是一样的.php 被调用domain.com/2018 也一样(除非有更多的结果)。我到处看了看archives.php (我有)但它与实际渲染的内容不一致。在我读到的一些地方date.php 我也是,但我没有这样的档案。现在我对归档文件特别感兴趣,但有了这个问题,我正在寻找一种通用方法来确切了解特定URL涉