个性化阅读
专注于IT技术分析

更好地使用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>';
}

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

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

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

赞(0)
未经允许不得转载:srcmini » 更好地使用WordPress Theme Mod

评论 抢沙发

评论前必须登录!