如果未提供值,是否删除内部样式表?

时间:2013-08-28 作者:Dejo Dekic

我使用此代码在head-section代码中添加选项,但我的问题是,如果没有提供任何值,我的函数仍会回显空<style type="text/css"><style> 进入我的脑海

如果没有返回值,如何删除样式标记 谢谢你!!

//Hook into WP head and add our options
add_action(\'wp_head\', \'dynamic_options\');
function dynamic_options() {    
$checkbox = get_option(\'sandbox_theme_social_options\');
$checkbox[\'hide_sidebar\'] =\'\';  
$css = array( \'headercolor\'=>\'blank\',

          \'wrapper_background_color\'=>\'blank\' );
          $css[\'headercolor\'] = get_header_textcolor(); // get_header_textcolor();
          $css[\'wrapper_background_color\'] = get_option(\'wrapper_background_color\');
        foreach( $css as $itm => $value ) {
            if($value !=\'blank\') {

              echo \'<style type="text/css">\';
                if($css[\'wrapper_background_color\']!=\'\'){
                 echo "#wrapper{background-color:".$css[\'wrapper_background_color\'].";
                 }"; break; 
                }//End if background color 
                    if ($checkbox[\'hide_sidebar\'] == \'on\'){
                     echo \'.sidebar_sec{display:none;}\';
                    }//End if sidebar on
                echo \'</style>\';
            }//End If value Blank

        }//End Foreach

}// End Dynamic options

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

您使用的代码有点脏:这里不需要foreach,我想您忘记了打印标题颜色(请参阅下面代码中的注释)。

之后,如果没有自定义项,则不想打印任何内容,请创建一个out变量,而不是空白打印样式:

add_action(\'wp_head\', \'dynamic_options\');

function dynamic_options() {    

  $checkbox = (array) get_option(\'sandbox_theme_social_options\');
  if ( ! isset($checkbox[\'hide_sidebar\']) ) $checkbox[\'hide_sidebar\'] = \'off\';
  $css = array(
    \'headercolor\' => get_header_textcolor() ? : \'blank\',
    \'wrapper_background_color\' => get_option(\'wrapper_background_color\') ? : \'blank\'
  );
  $out = \'\';

  if( $css[\'wrapper_background_color\'] != \'blank\')
    $out .= \'#wrapper { background-color:"\' . $css[\'wrapper_background_color\'] . \'"; }\';

  // I think you forgot following 2 lines in your code ;)
  if( $css[\'headercolor\'] != \'blank\')
    $out .= \'#header { color: "\' . $css[\'headercolor\'] . \'"; }\';

  if ( $checkbox[\'hide_sidebar\'] == \'on\' )
    $out .= \'.sidebar_sec { display:none; }\';

  if ( $out != \'\') echo \'<style type="text/css">\' . $out . \'</style>\';

}

SO网友:eevaa

检查项目是否已预先设置好如何?

    foreach( $css as $itm => $value ) {
        if( isset( $itm ) ) {
             echo \'<style type="text/css">\';
             if($value !=\'blank\') {
                  if($css[\'wrapper_background_color\']!=\'\'){
                       echo "#wrapper{background-color:".$css[\'wrapper_background_color\'].";
                       }"; break; 
                  }//End if background color 
                  if ($checkbox[\'hide_sidebar\'] == \'on\'){
                       echo \'.sidebar_sec{display:none;}\';
                  }//End if sidebar on
             }//End If value Blank
             echo \'</style>\';
        } //End If is set
    }//End Foreach

结束

相关推荐

检查博客帖子数量并添加css的代码

是否有任何类型的jquery可以用来检查页面上是否只有一篇博客文章,然后添加自定义CSS?如果有多个,添加不同的CSS?<div class=\"main-blog top top-fix\"> <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post( \'\' ); ?> <div class=\"divider ove