2016-08-02 42 views
3

我正在從textarea中添加CSS。有沒有辦法在<head>在WordPress中將頭部添加到輸出時縮小CSS中的內容

CSS添加時,我可以很容易地再壓縮輸出

#logo img{ 
    opacity: 0.8; 
} 
#header{ 
    background-color: red; 
} 

function add_css_to_head(){ 
    $opt = get_option('get_css_head'); 

    echo '<style type="text/css" id="get_css_head">' . "\n" . stripslashes($opt) . "\n" . '</style>'; 
} 
add_action('wp_head', 'add_css_to_head'); 

我想提前在<head>

#logo img{opacity:.8}#header{background-color:red} 

由於這樣的輸出

回答

2

您可以使用PHP的here文檔和PHP str_replace函數的組合...喜歡這個

function add_css_to_head(){ 
    $buffer = <<<EOD 
    #logo img{ 
     opacity: 0.8; 
    } 
    #header{ 
     background-color: red; 
    } 
    EOD; 

    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); 
    $buffer = str_replace(': ', ':', $buffer); 
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); 
    echo($buffer); 
} 
add_action('wp_head', 'add_css_to_head'); 

編輯

如果您從主題選項獲得輸出,那麼代碼將如下所示

function add_css_to_head(){ 
    $buffer = get_option('get_css_head'); 

    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); 
    $buffer = str_replace(': ', ':', $buffer); 
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); 
    echo($buffer); 

} 
add_action('wp_head', 'add_css_to_head'); 
+0

它完美地工作的人。讓我測試一下這個有點全面,我會更新。這將被接受的答案。讓我再檢查一次。 – Ayanize

+0

是的。我是這樣得到的。再次感謝。它工作可愛。 – Ayanize

1

如果您無權訪問代碼庫以自行縮小CSS,則可以使用像Better WordPress Minify這樣的插件。

編輯:來縮小上飛的價值,你可以使用minify library

+0

謝謝。其實我在我的主題選項中添加textarea,用戶可以添加他們自己的CSS。但我希望以任何方式添加,輸出shud在縮小形式 – Ayanize

+1

在這種情況下,您可能會直接進行這種功能的PHP實現。檢查更新的答案。 –

+0

如果解決方案會變成你正在尋找的東西,如果你接受了答案,我會很感激。乾杯! –