• Trang chủ
  • WordPress
    • Thủ thuật WordPress
    • WordPress Plugins
    • WordPress Themes
  • Hosting và Domain
  • Kiếm tiền online
  • Đánh giá
  • Khuyến mãi
  • Thông báo
wpcb-logo

WP Căn bản

Kiến thức căn bản cho người dùng WordPress

paradise-child-theme-wordpress-theme-tot-nhat
  • Dịch vụ WordPress Hosting
  • Dịch vụ tối ưu WordPress
  • Dịch vụ quét mã độc WordPress
  • Mua Paradise child theme
Trang chủ » WordPress » Thủ thuật WordPress » Minify HTML, JS và CSS trong WordPress không cần plugin
hosting-tot-nhat-danh-cho-wordpress

Minify HTML, JS và CSS trong WordPress không cần plugin

Cập nhật: 19/06/2022 Trung Hiếu 47 Bình luận

Mục lục Hiện
  • 1. Minify HTML, JavaScript và CSS trong WordPress

Minify HTML, JavaScript và CSS trong WordPress mà không cần plugin.

minify-html-javascript-css-trong-wordpress-khong-can-plugin

Sử dụng quá nhiều plugin trên blog/ website WordPress không bao giờ là một ý tưởng tốt. Bởi vì chúng ta đều biết rằng các hacker có thể dễ dàng tấn công blog/ website WordPress của bạn thông qua việc khai thác lỗ hổng từ plugin. Tại sao không cố gắng để giảm bớt sự phụ thuộc vào các plugin? Một số tính năng hữu ích có thể được bổ sung dễ dàng bằng cách thêm code snippets vào file function.php của theme mà bạn đang sử dụng. Bao gồm cả thủ thuật độc đáo sau đây để minify HTML, CSS và JavaScript.

Tham khảo thêm:

  • Top 4 plugins minify dữ liệu tốt nhất cho WordPress
  • Làm thế nào để giảm bớt HTTP requests cho WordPress?

Giảm bớt hay minify HTML, JavaScript và CSS về cơ bản là giảm kích thước của các tập tin. Từ đó, chúng sẽ nhỏ hơn, nhẹ hơn và load nhanh hơn, giúp cải thiện tốc độ hiển thị nội dung trên trình duyệt web. Việc minify dữ liệu về cơ bản là khá đơn giản. Bạn chỉ cần tìm cách loại bỏ các vùng không gian trống, tham số và comments của JavaScript, CSS, HTML là được. Chức năng minify có thể được tìm thấy trong một số plugin như WP-Minify hay Autoptimize. Nếu đang sử dụng plugin W3 Total Cache, bạn cũng chỉ cần vài thao tác đơn giản để kích hoạt tính năng này. Nhưng chúng ta đang cố gắng hạn chế sự phụ thuộc vào plugin. Vậy nên, điều chúng ta cần là một phương pháp để thay thế.

Minify HTML, JavaScript và CSS trong WordPress

Trên thực tế, các bạn có thể làm điều này một cách dễ dàng mà không cần đến plugin. Tất cả những gì bạn cần làm là copy và paste đoạn code sau đây vào file functions.php của theme mà bạn đang sử dụng.

class WP_HTML_Compression
{
	// Settings
	protected $compress_css = true;
	protected $compress_js = true;
	protected $info_comment = true;
	protected $remove_comments = true;

	// Variables
	protected $html;
	public function __construct($html)
	{
		if (!empty($html))
		{
			$this->parseHTML($html);
		}
	}
	public function __toString()
	{
		return $this->html;
	}
	protected function bottomComment($raw, $compressed)
	{
		$raw = strlen($raw);
		$compressed = strlen($compressed);

		$savings = ($raw-$compressed) / $raw * 100;

		$savings = round($savings, 2);

		return '<!--HTML compressed, size saved '.$savings.'%. From '.$raw.' bytes, now '.$compressed.' bytes-->';
	}
	protected function minifyHTML($html)
	{
		$pattern = '/<(?<script>script).*?<\/script\s*>|<(?<style>style).*?<\/style\s*>|<!(?<comment>--).*?-->|<(?<tag>[\/\w.:-]*)(?:".*?"|\'.*?\'|[^\'">]+)*>|(?<text>((<[^!\/\w.:-])?[^<]*)+)|/si';
		preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);
		$overriding = false;
		$raw_tag = false;
		// Variable reused for output
		$html = '';
		foreach ($matches as $token)
		{
			$tag = (isset($token['tag'])) ? strtolower($token['tag']) : null;

			$content = $token[0];

			if (is_null($tag))
			{
				if ( !empty($token['script']) )
				{
					$strip = $this->compress_js;
				}
				else if ( !empty($token['style']) )
				{
					$strip = $this->compress_css;
				}
				else if ($content == '<!--wp-html-compression no compression-->')
				{
					$overriding = !$overriding;

					// Don't print the comment
					continue;
				}
				else if ($this->remove_comments)
				{
					if (!$overriding && $raw_tag != 'textarea')
					{
						// Remove any HTML comments, except MSIE conditional comments
						$content = preg_replace('/<!--(?!\s*(?:\[if [^\]]+]|<!|>))(?:(?!-->).)*-->/s', '', $content);
					}
				}
			}
			else
			{
				if ($tag == 'pre' || $tag == 'textarea')
				{
					$raw_tag = $tag;
				}
				else if ($tag == '/pre' || $tag == '/textarea')
				{
					$raw_tag = false;
				}
				else
				{
					if ($raw_tag || $overriding)
					{
						$strip = false;
					}
					else
					{
						$strip = true;

						// Remove any empty attributes, except:
						// action, alt, content, src
						$content = preg_replace('/(\s+)(\w++(?<!\baction|\balt|\bcontent|\bsrc)="")/', '$1', $content);

						// Remove any space before the end of self-closing XHTML tags
						// JavaScript excluded
						$content = str_replace(' />', '/>', $content);
					}
				}
			}

			if ($strip)
			{
				$content = $this->removeWhiteSpace($content);
			}

			$html .= $content;
		}

		return $html;
	}

	public function parseHTML($html)
	{
		$this->html = $this->minifyHTML($html);

		if ($this->info_comment)
		{
			$this->html .= "\n" . $this->bottomComment($html, $this->html);
		}
	}

	protected function removeWhiteSpace($str)
	{
		$str = str_replace("\t", ' ', $str);
		$str = str_replace("\n",  '', $str);
		$str = str_replace("\r",  '', $str);

		while (stristr($str, '  '))
		{
			$str = str_replace('  ', ' ', $str);
		}

		return $str;
	}
}

function wp_html_compression_finish($html)
{
	return new WP_HTML_Compression($html);
}

function wp_html_compression_start()
{
	ob_start('wp_html_compression_finish');
}
add_action('get_header', 'wp_html_compression_start');

Nếu code bị lỗi, các bạn có thể download file text tại đây về máy tính để xem chi tiết.

Để kiểm tra xem liệu các chức năng minify có thực sự hoạt động hay không, các bạn chỉ cần view source (Ctrl + U) của blog/ website. Ở cuối mã nguồn, các bạn sẽ thấy thông báo trông như thế này:

<!–-HTML compressed, size saved …%. From …bytes, now …bytes-–>

Đơn giản vậy thôi. Chúc các bạn thành công!

Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)

Đang tải đánh giá...
  • Facebook
  • Twitter (X)
  • LinkedIn
  • Pinterest
  • Tumblr
  • Zalo

Bài viết liên quan

Plugin WPCB Hybrid Cache Manager độc quyền
Plugin WPCB Hybrid Cache Manager độc quyền
Plugin WPCB APCu Cache Manager độc quyền
Plugin WPCB APCu Cache Manager độc quyền
Tính năng Crawl Optimization của plugin Yoast SEO
Tính năng Crawl Optimization của plugin Yoast SEO

Chuyên mục: Thủ thuật WordPress Thẻ: Tăng tốc WordPress

wpcanban-com-facebook-group

Nói về Trung Hiếu

Một người con của xứ Nghệ, hiện đang sinh sống tại Hà Nội. Tôi là người sáng lập và đứng sau mọi hoạt động của WP Căn bản. Tìm hiểu thêm về tôi tại đây.

Bài viết trước « Bảng xếp hạng AdSense CPC theo từng quốc gia
Bài viết sau Tại sao Google Panda 4.0 khiến eBay giảm 80% rank? »

Reader Interactions

Bình luận

    Để lại một bình luận Hủy

    Tất cả các bình luận đều sẽ được kiểm duyệt nghiêm ngặt. Mọi bình luận trái quy định sử dụng sẽ bị gỡ bỏ link hoặc xóa bỏ hoàn toàn. Vui lòng đọc kỹ quy định trước khi bình luận. Xin cảm ơn!

  1. Đạo tặc Comment 64 bình luậnviết

    20/03/2017 lúc 20:40

    Đang tìm thì vớ được, sẽ đem cái này vào theme.
    Cũng đưa khung comment lên trên rồi ạ :P

    Trả lời
    • Trung Hiếu Quản lýviết

      20/03/2017 lúc 21:55

      Anh đang tiến hành một số thay đổi để nâng cao trải nghiệm người dùng. :P

      Trả lời
  2. khach san phu quoc 1 bình luậnviết

    13/02/2017 lúc 23:17

    theme cuả mình nặng quá , chỉnh sao vẫn chậm

    Trả lời
  3. Sơn Zim 113 bình luậnviết

    18/12/2016 lúc 12:03

    Mình sử dụng WP Rocket có hơn gì k nhỉ?

    Trả lời
    • Vy Spirit 88 bình luậnviết

      18/12/2016 lúc 12:11

      WP Rocket cũng có chức năng nén như này mà :D hơn ở chỗ ko cần phải làm thêm gì cho mất công :D

      Trả lời
  4. Quốc 1 bình luậnviết

    29/11/2016 lúc 16:32

    Code này bỏ vào trong thẻ PHP là được nhé mọi người bỏ ngoài là bị lỗi. Bác up code mà không chỉ mọi người nhé :(

    Trả lời
  5. Luong Quan 2 bình luậnviết

    26/11/2016 lúc 11:17

    Mình cũng đang dùng code của bạn để nén, thấy xài ổn hơn plugin Autoptimize đó. Thanks bạn !!

    Trả lời
  6. can ho southern dragon 1 bình luậnviết

    06/09/2016 lúc 23:18

    Kaka, dùng đoạn code bạn đưa có vẻ hay, mình đang áp dụng và chạy thấy cũng tạm ổn hơn plugin.
    Thanks thớt.

    Trả lời
  7. ha ha 1 bình luậnviết

    27/05/2016 lúc 05:23

    thôi xong chèn xong code thì lỗi 500 k còn gì để khóc cán bộ xem có lỗi gì không

    Trả lời
    • Trung Hiếu Quản lýviết

      27/05/2016 lúc 08:15

      Nếu lỗi thì bạn vào Files Manager của cPanel/ DirectAdmin hoặc FTP, mở file functions.php của theme ra và xóa đoạn code vừa chèn vào là được. :P

      Trả lời
  8. Son Dang 7 bình luậnviết

    12/04/2015 lúc 20:29

    Website anh Hiếu đang xài chức năng nén css và javascript là plugin hay cùng code vậy anh!

    Trả lời
    • Trung Hiếu Quản lýviết

      12/04/2015 lúc 21:42

      Mình không dùng code cũng không dùng plugin bạn nhé. Mình nén theo phương pháp thủ công. :)

      Trả lời
  9. Truong Nguyen 19 bình luậnviết

    25/09/2014 lúc 10:02

    Vô tình đọc được cả 2 bài :))
    Nhưng mình thêm code vào function rồi nhưng bị lỗi.hay tại up lên WP 4.0 nhỉ

    Trả lời
    • Trung Hieu Quản lýviết

      25/09/2014 lúc 10:08

      Chắc do mình paste code nó bị lỗi đó bạn. Nếu bị lỗi, bạn có thể download file text này về để xem: http://dvslabs.googlecode.com/files/minifier-script-en.txt

      Trả lời
      • Truong Nguyen 19 bình luậnviết

        25/09/2014 lúc 21:31

        ok, để mình test lại thử :3

        Trả lời
        • Trung Hieu Quản lýviết

          25/09/2014 lúc 21:43

          Lần này đảm bảo thành công 100% luôn. :D

          Trả lời
          • Dũng Lưới 2 bình luậnviết

            10/04/2015 lúc 14:55

            Mình không làm được dù đã down file của bạn. Khi thêm vào web nó trắng xóa ko có 1 mã HTML nào cả :(

            Trả lời
            • Trung Hiếu Quản lýviết

              10/04/2015 lúc 15:31

              Nếu vậy thì có lẽ bạn nên sử dụng plugin sẽ tốt hơn. Bạn có thể tìm plugin HTML Minify. :-P

              Trả lời
  10. Đôn 8 bình luậnviết

    29/06/2014 lúc 10:19

    mình cũng viết một bài về minify, hình như thấy hơi giông giống :D

    Trả lời
    • Trung Hieu Quản lýviết

      30/06/2014 lúc 16:44

      Bài của mình đăng lâu rồi mà. Từ hôm 4/6. :D

      Trả lời
1 2 »

Sidebar chính

Người sáng lập

avatar-tac-gia
Blogger - Developer - Freelancer

Tôi tên là Bùi Trung Hiếu, sinh ra ở một làng quê nghèo thuộc tỉnh Nghệ An. Hiện tại, tôi đang sinh sống và làm việc tại Hà Nội. Với niềm đam mê công nghệ thông tin mãnh liệt, đặc biệt là WordPress, tôi đã tự tìm tòi, nghiên cứu về chúng trong suốt nhiều năm qua.

Xem thêm về tôi

Theo dõi qua mạng xã hội

Dịch vụ tối ưu WordPress miễn phí

dich-vu-toi-uu-wordpress-mien-phi

Plugin độc quyền miễn phí

  • WPCB 404 Auto Redirect
  • WPCB AI Optimization
  • WPCB Auto Images Alt-Text
  • WPCB Auto Expired Transients Cleaner
  • WPCB Central Panel
  • WPCB Comment Notifications
  • WPCB Comment User Badge
  • WPCB Content Protector
  • WPCB Disable Blog
  • WPCB Hybrid Cache Manager
  • WPCB Images Cleaner
  • WPCB Images Optimizer
  • WPCB Permalinks Manager
  • WPCB Secure Shield
  • WPCB Simple AntiSpam
  • WPCB Simple Contact Form
  • WPCB Simple Lightbox
  • WPCB Simple Ratings
  • WPCB Simple SMTP
  • WPCB Snowfall
  • WPCB Social Share Buttons
  • WPCB SpeedUp
  • WPCB Syntax Highlighter
  • WPCB Top Commenters
  • WPCB Ultimate Search

Dịch vụ quét mã độc miễn phí

dich-vu-quet-ma-doc-wordpress-mien-phi

Bài viết mới nhất

  • WordPress 7.0 “Armstrong” chính thức phát hành 21/05/2026
  • Plugin WPCB SpeedUp tối ưu WordPress độc quyền 19/05/2026
  • Dọn dẹp ảnh thừa cho website WordPress 28/04/2026
  • Plugin nén ảnh siêu nhẹ dành cho WordPress 24/04/2026
  • Ra mắt plugin WPCB Central Panel độc quyền 08/04/2026
  • Tối ưu website WordPress cho AI một cách đơn giản 24/03/2026

Footer

Bình luận mới nhất

  • Trung Hiếu trong Plugin WPCB SpeedUp tối ưu WordPress độc quyền
  • Wayeal trong Plugin WPCB SpeedUp tối ưu WordPress độc quyền
  • Trung Hiếu trong Sửa lỗi không hiện hình ảnh và mô tả khi share link lên Zalo
  • Góc Của Ân trong Sửa lỗi không hiện hình ảnh và mô tả khi share link lên Zalo
  • Trung Hiếu trong Hướng dẫn tích hợp dark mode cho website WordPress

Bình luận nhiều nhất

  1. Tịnh Nguyễn Blog (9)
  2. DIGICONTENT VN (2)
  3. Blog Công Chứng (2)
  4. DigiContent (1)
  5. Nguyễn Hùng (1)
  6. 123 Jewelry (1)
  7. Công Chứng (1)
  8. Kenivinh (1)

Liên kết hữu ích

  • Giới thiệu bản thân
  • Quy định sử dụng
  • Bản quyền nội dung
  • Chính sách bảo mật
  • Liên hệ hỗ trợ

Thống kê WP Căn bản

9 Chuyên mục - 1.024 Bài viết - 35.733 Bình luận

Bản quyền © 2014 - 2026 · WP Căn bản (tiền thân là ebooksvn.com) · Sử dụng Paradise child theme và dịch vụ WordPress Hosting