我正在向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
}
答案 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()
函数一起添加以扩展主题的主要样式。