Khi bạn sử dụng WooCommerce trên WordPress, các tệp CSS và JS của plugin này thường được tải trên mọi trang của website, kể cả các trang không liên quan đến cửa hàng. Điều này không chỉ làm chậm tốc độ tải trang mà còn gây lãng phí tài nguyên máy chủ. Bài viết dưới đây sẽ hướng dẫn bạn cách gỡ bỏ các tệp CSS và JS của WooCommerce trên các trang không phải cửa hàng, giúp cải thiện hiệu suất và tối ưu hóa trang web của bạn.
Tại Sao Nên Gỡ Bỏ CSS và JS Của WooCommerce?
Mặc dù WooCommerce là một plugin mạnh mẽ, nhưng nó sẽ tải một số tệp CSS và JS trên tất cả các trang của website, kể cả các trang không liên quan đến cửa hàng. Điều này không chỉ làm giảm hiệu suất mà còn ảnh hưởng đến thời gian tải trang, điều này rất quan trọng đối với trải nghiệm người dùng và SEO.
Các lý do nên gỡ bỏ CSS và JS của WooCommerce:
- Tăng tốc độ tải trang: Việc loại bỏ các tệp không cần thiết giúp giảm thời gian tải trang.
- Tiết kiệm tài nguyên hệ thống: Bằng cách không tải các tài nguyên không cần thiết, bạn sẽ tiết kiệm băng thông và tài nguyên máy chủ.
- Cải thiện trải nghiệm người dùng: Website tải nhanh hơn, mang đến trải nghiệm người dùng mượt mà và dễ chịu hơn.
Cách Gỡ Bỏ CSS và JS WooCommerce Trên Các Trang Không Liên Quan Đến Cửa Hàng
Để làm điều này, bạn chỉ cần thêm một đoạn mã vào file functions.php
của theme WordPress. Đoạn mã dưới đây sẽ giúp bạn gỡ bỏ CSS và JS của WooCommerce khi người dùng truy cập vào các trang không phải cửa hàng.
1. Thêm Mã Vào File functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /** * Kiểm tra nếu trang hiện tại là một trang WooCommerce. */ function is_woocommerce_page() { return class_exists( 'WooCommerce' ) && ( is_shop() || is_cart() || is_checkout() || is_account_page() ); } /** * Xóa CSS và JS của WooCommerce khi không phải trang cửa hàng. */ add_action( 'template_redirect', 'remove_wc_assets_on_non_shop_pages' ); function remove_wc_assets_on_non_shop_pages() { if ( ! is_woocommerce_page() ) { // Gỡ bỏ tag generator của WooCommerce remove_filter( 'get_the_generator_html', 'wc_generator_tag', 10, 2 ); remove_filter( 'get_the_generator_xhtml', 'wc_generator_tag', 10, 2 ); // Hủy tải các script và style của WooCommerce remove_action( 'wp_enqueue_scripts', [ WC_Frontend_Scripts::class, 'load_scripts' ] ); remove_action( 'wp_print_scripts', [ WC_Frontend_Scripts::class, 'localize_printed_scripts' ], 5 ); remove_action( 'wp_print_footer_scripts', [ WC_Frontend_Scripts::class, 'localize_printed_scripts' ], 5 ); // Hủy bỏ "Show gallery if JS is disabled" remove_action( 'wp_head', 'wc_gallery_noscript' ); // Gỡ bỏ class của WooCommerce khỏi body remove_filter( 'body_class', 'wc_body_class' ); } } /** * Điều chỉnh việc tải CSS của WooCommerce. */ add_filter( 'woocommerce_enqueue_styles', 'conditionally_enqueue_woocommerce_styles' ); function conditionally_enqueue_woocommerce_styles( $enqueue_styles ) { return is_woocommerce_page() ? $enqueue_styles : array(); } /** * Điều kiện tải script WooCommerce. */ add_action( 'wp_enqueue_scripts', 'conditionally_enqueue_wc_scripts' ); function conditionally_enqueue_wc_scripts() { if ( ! is_woocommerce_page() ) { wp_dequeue_style( 'woocommerce-inline' ); } } /** * Xóa các action không cần thiết của WooCommerce. */ function remove_woocommerce_unwanted_actions() { remove_action( 'wp_head', 'wc_gallery_noscript' ); } |
2. Giải Thích Chi Tiết Các Hàm Trong Mã
is_woocommerce_page(): Hàm này kiểm tra xem người dùng có đang ở một trong các trang WooCommerce (cửa hàng, giỏ hàng, thanh toán, tài khoản người dùng) hay không. Nếu có, nó sẽ trả về true, ngược lại sẽ trả về false.
remove_wc_assets_on_non_shop_pages(): Đây là hàm chính giúp xóa các tài nguyên (CSS, JS) không cần thiết của WooCommerce trên các trang không phải là trang WooCommerce. Nó đảm bảo rằng WooCommerce chỉ tải tài nguyên khi cần thiết.
conditionally_enqueue_woocommerce_styles(): Hàm này đảm bảo rằng các tệp CSS của WooCommerce chỉ được tải trên các trang của WooCommerce, giảm thiểu việc tải các tài nguyên không cần thiết.
conditionally_enqueue_wc_scripts(): Hàm này giúp đảm bảo rằng các tệp JS của WooCommerce không được tải trên các trang không phải cửa hàng.
remove_woocommerce_unwanted_actions(): Gỡ bỏ một số actions không cần thiết như wc_gallery_noscript giúp giảm tải các tác vụ không cần thiết trong phần head của trang.
- 20+ chức năng có thể thêm vào trang thanh toán (Checkout) của WordPress
- 15 mẹo và thủ thuật WordPress để tăng cường hiệu suất cho trang web của bạn
- Trang trí website của với chủ đề Tết
- Mã SKU Là Gì và Tại Sao Bạn Nên Sử Dụng? Hướng Dẫn Chi Tiết
- Giftbox Products WooCommerce – Giải Pháp Toàn Diện Cho Tặng Quà Kèm Trên Website Bán Hàng