我向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
说实话, 你甚至不需要if语句, 因为你正在将默认值传递给get_theme_mod(), 因此它永远不应为空。一般来说, 如果你没有默认值, 或者甚至有可能为空值, 则需要检查该条件-但你不需要在这里。如果愿意, 可以将它们组合为单个if语句, 如下所示:
if ( !empty( $slider_height ) || !empty( $slider_max_height ) ){
// Code
}
管道||表示PHP的逻辑”或”运算符, 因此, 如果任何一个都不为空, 它将继续进行。也就是说, 这可能就是我修改当前代码的方式:
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()函数一起添加以扩展主题的主要样式。
评论前必须登录!
注册