更好地使用Wordpress Theme Mod

时间:2018-10-27 19:42:06

标签: php wordpress wordpress-theming

我正在向Wordpress Customizer添加一些自定义控件,并使用这些控件来设置滑块的样式。我想知道是否有比我已经做过的更好的方法来实现此目的。我在这里不太了解if语句,但我知道它可以工作。任何帮助深表感谢!

function apache_c_slider_css() {

    ?>
    <style type='text/css'>
    <?php

    $slider_height = get_theme_mod( 'slider_height', '500' );
    if ( ! empty( $slider_height ) ) {
        ?>
        #slider,
        .slides,
        .slide {
            height: <?php echo $slider_height; ?>px;
        }
        <?php
    }

    $slider_max_height = get_theme_mod( 'slider_max_height', '100' );
    if ( ! empty( $slider_max_height ) ) {
        ?>
        #slider,
        .slides,
        .slide {
            max-height: <?php echo $slider_max_height; ?>vh;
        }
        <?php
    }

    ?>
    </style>
    <?php
}

1 个答案:

答案 0 :(得分:1)

说实话,您甚至不需要if语句,因为您正在将默认值传递给get_theme_mod(),因此它永远不应为空。一般而言,如果您没有默认值,或者甚至有可能为空值,则需要检查该条件-但您不需要在这里。如果您想 ,可以将它们合并为一个if语句,如下所示:

if ( !empty( $slider_height ) || !empty( $slider_max_height ) ){
    // Code
}

管道||表示PHP's Logical "OR" Operator,因此如果其中一个都不为空,它将继续进行。也就是说,这可能就是我修改当前代码的方式:

function apache_c_slider_css(){
    $slider_height     = get_theme_mod( 'slider_height', '500' );
    $slider_max_height = get_theme_mod( 'slider_max_height', '100' );

    echo '<style type=\'text/css\'>
        #slider,
        .slides,
        .slide {
            height: '. $slider_height .'px;
            max-height: '. $slider_max_height .'vh;
        }
    </style>';
}

声明将返回设置的主题mod,默认为500像素和100视口高度%。

最后,您可以一次输出整个内容。

话虽如此,“烘焙”脚本和样式通常不是在WordPress中添加CSS和JS的最佳方法,尤其是当您正在处理主题时。这种CSS是教科书的代码示例,应与wp_add_inline_style()函数一起添加以扩展主题的主要样式。