簡體   English   中英

更好地使用Wordpress Theme Mod

[英]Using Wordpress Theme Mod Better

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

坦白說,您甚至不需要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()函數一起添加以擴展主題的主要樣式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM