2016-08-02 9 views
3

Я добавляю CSS в текстовое поле. Есть ли способ, я могу легко Минимизировать выход при добавлении в <head>Минимизировать CSS на выходе при добавлении в голову в WordPress

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 heredocs и 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'); 

EDIT

Если вы получаете выходные данные из параметров темы, тогда код будет выглядеть так:

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.

Edit: Для того, чтобы преуменьшать значение на лету, вы могли бы использовать minify library

+0

Спасибо. На самом деле я добавляю textarea в свои параметры темы, где пользователи могут добавлять свой собственный CSS. Но я хочу, как бы они ни добавлялись, выходной файл будет в уменьшенной форме. – Ayanize

+1

В этом случае вы, вероятно, можете перейти непосредственно к реализации PHP такой функции. Проверьте обновленный ответ. –

+0

Если решение окажется тем, что вы искали, я был бы признателен, если бы вы приняли ответ. Ура! –