今天寫了一個插件,用來專門處理wordpress的css和js文件合并問題。在我們的開發中,我們常常會考慮把多個文件合并為一個,用一個URL就可以解決原來需要多個URL才能解決的鏈入問題。當然,如果了解過類似淘寶css輸出的服務端技術,那么無需再為此煩惱。為了和WordPress結合,我專門寫了這個插件,雖然在WordPress官方目錄中我已經發現有這個插件存在了,但是我仍然把這個插件的名稱定為wp-minify。
安裝
首先,下載這個插件,我把它托管在我的GitHub上,你可以在這個頁面下載。下載好之后,進行解壓,解壓完直接把解壓出來的整個文件夾上傳到你的WordPress網站插件目錄下。然后去后臺啟用它。
訪問不了的,直接戳這里:
wp-minify.zip
使用
進入后臺,在“設置”菜單下有一個子菜單“Minify”,進入后可以對它的各個選項進行設置,而且都有注釋,可以了解功能。
使用wp-minify必須修改主題,因為你輸出css和js的方式不一樣了。 在你的主題中,刪除原來的CSS和JS輸出,使用如下的方法輸出JS:
<?php
wp_minfiy_js(array('/wp-content/themes/yourtheme/js/base.js','/wp-content/themes/yourtheme/js/module.js','/wp-content/themes/yourtheme/js/others.js'));輸出css的方法是一樣的,只不過要使用另外一個函數wp_minify_css()。函數的參數是一個數組,數組內部的元素是腳本文件的路徑,以WordPress安裝目錄為根目錄,寫入完整的相對路徑。
為什么要相對于WordPress的根目錄寫腳本呢?而不是相對你當前的主題目錄呢?其實道理很簡單,因為你所引用的css或者js不一定是主題目錄下的,有的時候你會引用其他目錄下面的樣式或者腳本。當然,這是相對路徑,你甚至可以引用WordPress上一級目錄的腳本,例如 "/../test.js",但是注意,腳本的開頭一定要用/開頭,否則可能引起相對路徑錯誤。
另外,我還提供了另外一個類用于通過action掛載到wp_head或wp_footer中。具體用法如下:
<?php
new wp_minify_css_action(array('/wp-content/themes/yourtheme/css/test.css'));
wp_head();wp_minify_css_action這個類可以直接實現把輸出的內容掛載到wp_head處。利用這個特性,你可以使用這個類,做一些其他的深度開發,比如你想在所有的路徑中增加base.css這個文件,你并不需要在每一個action中都這么寫。我提供一種方法:
// functions.php
function add_minify_css($files) {
array_unshift('base.css',$files);
foreach($files as &$file) {
$file = '/wp-content/themes/yourtheme/css/'.$file;
}
new wp_minify_css_action($files);
}
// single.php
add_minify_css(array('single.css','comment.css'));
wp_head();就像上面這樣,可以讓你的程序寫的更加簡單一些。






