Bình thường chúng ta hay dùng Minify CSS, JS thông qua plugin như WP Super Minify chả hạn tuy nhiên với tư duy không thích dùng plugin thì mình chỉ cần 1 function để giải quyết vấn đề là song
Đoạn code dưới đây sẽ cho phép nén thẳng trực tiếp vào file mà web chúng ta đang dùng chỉ cần thêm đoạn code bên dưới vào file function.php của theme là được,
Lưu Ý: đoạn code này có nguy cơ xung đột với wpdiscuz không hiển thị được ô comment cân nhắc trước khi dùng.
function minify_resources() {
if (!is_admin()) {
// Tối ưu hóa tài nguyên CSS
add_filter('style_loader_src', function($href) {
if (strpos($href, 'wp-includes') === false) {
$minified_css = WP_CONTENT_DIR . '/cache/' . md5($href) . '.css';
if (file_exists($minified_css)) {
return str_replace(WP_CONTENT_DIR, WP_CONTENT_URL, $minified_css);
} else {
$buffer = file_get_contents($href);
$minified = preg_replace('/\s+/', ' ', $buffer);
$minified = preg_replace('/\/\*.*?\*\//', '', $minified);
file_put_contents($minified_css, $minified);
return str_replace(WP_CONTENT_DIR, WP_CONTENT_URL, $minified_css);
}
}
return $href;
});
// Tối ưu hóa tài nguyên JS
add_filter('script_loader_src', function($src) {
if (strpos($src, 'wp-includes') === false) {
$minified_js = WP_CONTENT_DIR . '/cache/' . md5($src) . '.js';
if (file_exists($minified_js)) {
return str_replace(WP_CONTENT_DIR, WP_CONTENT_URL, $minified_js);
} else {
$buffer = file_get_contents($src);
$minified = preg_replace('/\s+/', ' ', $buffer);
file_put_contents($minified_js, $minified);
return str_replace(WP_CONTENT_DIR, WP_CONTENT_URL, $minified_js);
}
}
return $src;
});
}
}
add_action('wp_enqueue_scripts', 'minify_resources');
Chúng ta cùng xem code trước khi áp dụng
Sau khi áp dụng code
Lưu ý:
Đoạn code này sẽ không áp dụng với những file trong wp-includes nếu cần bạn phải chỉnh sửa lại cho phù hợp nhé