更好地使用WordPress Theme Mod

我向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> '; }

【更好地使用WordPress Theme Mod】声明将返回设置的主题mod, 默认情况下返回500像素和100视口高度%。
最后, 你可以一次输出整个内容。
话虽如此, “ 烘焙” 脚本和样式通常不是在WordPress中添加CSS和JS的最佳方法, 尤其是当你正在处理主题时。这种CSS是教科书的代码示例, 应与wp_add_inline_style()函数一起添加以扩展主题的主要样式。

    推荐阅读