2016-08-02 14 views
3

Ich füge CSS aus einem Textarea hinzu. Gibt es eine Weise, die ich leicht die Ausgabe minify kann, wenn in der CSS-CSS in der Ausgabe verkleinern, wenn sie in WordPress dem Kopf hinzugefügt wird

<head> hinzugefügt

#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'); 

Ich möchte die Ausgabe wie folgt in den <head>

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

Vielen Dank im Voraus

Antwort

2

Sie verwenden eine Kombination von PHP Heredocs und PHP str_replace verwenden können ... Gefällt Ihnen dieses

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

Wenn Sie Ausgabe von Thema Optionen erhalten, dann würde der Code wie folgt aussehen

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

Es funktioniert perfekt Mann. Lass mich das ein bisschen umfassend testen und ich werde aktualisiert. Dies wird als Antwort akzeptiert. Lass mich noch einmal nachsehen. – Ayanize

+0

Ja ja. Ich habe es so verstanden. Noch einmal vielen Dank. Es funktioniert wunderbar. – Ayanize

1

Wenn Sie keinen Zugriff auf die Codebasis haben, um das CSS selbst zu minimieren, können Sie ein Plugin wie Better WordPress Minify verwenden.

Edit: den Wert on the fly minify, könnten Sie minify library

+0

Danke. Eigentlich füge ich das Textfeld in meine Themenoptionen ein, wo Benutzer ihr eigenes CSS hinzufügen können. Aber ich möchte in welcher Art auch immer sie hinzufügen, die Ausgabe shud in der verkleinerten Form sein – Ayanize

+1

In diesem Fall könnten Sie wahrscheinlich direkt für eine PHP-Implementierung einer solchen Funktion gehen. Überprüfen Sie die aktualisierte Antwort. –

+0

Wenn die Lösung das ist, wonach Sie gesucht haben, würde ich mich freuen, wenn Sie die Antwort akzeptieren würden. Prost! –