Php 更好地使用Wordpress主题模块

Php 更好地使用Wordpress主题模块,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我正在向Wordpress自定义程序添加一些自定义控件,并使用这些控件设置滑块的样式。我想知道是否有比我已经做的更好的方法来实现这一点。我不太理解这里的if语句,但我知道它是有效的。非常感谢您的帮助 function apache_c_slider_css() { ?> <style type='text/css'> <?php $slider_height = get_theme_mod( 'slider_height', '500'

我正在向Wordpress自定义程序添加一些自定义控件,并使用这些控件设置滑块的样式。我想知道是否有比我已经做的更好的方法来实现这一点。我不太理解这里的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
}

老实说,您甚至不需要if语句,因为您正在向传递一个默认值,所以它不应该是空的。一般来说,如果没有默认值,或者甚至有可能出现空值,则需要检查该条件,但不需要在此处进行检查。如果愿意,可以将它们组合成一个If语句,如下所示:

if ( !empty( $slider_height ) || !empty( $slider_max_height ) ){
    // Code
}
管道| |指示,因此如果其中一个不是空的,它将继续。也就是说,这可能就是我修改您当前代码的方式:

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>';
}
声明将返回已设置的主题模式,默认情况下为500像素和100%视口高度

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


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

感谢您的解释。我真的很感激。使用wp\u add\u inline\u样式有什么好处?我有一系列用户调整的自定义控件,现在这些调整通过add_action“wp_head”、“apache_c_slider_css”添加到functions.php的标题中;