devfulls https://devfulls.com Thu, 13 Nov 2025 13:47:10 +0000 vi hourly 1 https://devfulls.com/wp-content/uploads/2025/09/cropped-devfulls-logo-text-dark-32x32.webp devfulls https://devfulls.com 32 32 Chặn quyền xóa user và chỉnh sửa theme, plugin trong WordPress – Hướng dẫn chi tiết https://devfulls.com/chan-quyen-xoa-user-va-chinh-sua-theme-plugin-trong-wordpress-huong-dan-chi-tiet.html https://devfulls.com/chan-quyen-xoa-user-va-chinh-sua-theme-plugin-trong-wordpress-huong-dan-chi-tiet.html#respond Sat, 01 Nov 2025 10:48:13 +0000 https://devfulls.com/?p=1675

Trong quá trình quản trị website WordPress, việc phân quyền người dùng là yếu tố quan trọng giúp đảm bảo tính bảo mật và ổn định của hệ thống. Tuy nhiên, đôi khi bạn không muốn một số quản trị viên hoặc người có quyền cao được phép xóa tài khoản người dùng khác hoặc chỉnh sửa theme, plugin — vì điều đó có thể gây lỗi nghiêm trọng cho website. Bài viết này sẽ hướng dẫn bạn 2 cách chặn quyền xóa user và chỉnh sửa theme/plugin trong WordPress — vừa đơn giản, vừa an toàn.


Tại sao nên chặn quyền xóa user và chặn chỉnh sửa theme plugin trong WordPress?

Một số lý do phổ biến khiến bạn nên giới hạn quyền thao tác này:

  • 🔒 Bảo mật website tốt hơn: Giảm nguy cơ người khác vô tình hoặc cố ý chỉnh sửa mã nguồn.

  • 🧱 Tránh xung đột plugin/theme: Việc can thiệp vào code có thể làm lỗi website.

  • 👥 Bảo vệ tài khoản quản trị: Ngăn người dùng khác xóa nhầm hoặc xóa tài khoản admin chính.

  • ⚙️ Giữ sự ổn định trong vận hành: Chỉ người chịu trách nhiệm kỹ thuật mới có quyền cập nhật, chỉnh sửa code.

Cách 1: Chặn quyền chỉnh sửa theme và plugin bằng code

Bạn có thể thêm đoạn mã sau vào file wp-config.php của website:

define('DISALLOW_FILE_EDIT', true);

👉 Tác dụng:

  • Ngăn người dùng truy cập trình chỉnh sửa code trong Dashboard (Appearance > Theme Editor, Plugins > Plugin Editor).

  • Vô hiệu hóa hoàn toàn tính năng “Edit” để tránh chỉnh sửa trực tiếp file theme/plugin từ giao diện quản trị.

🔧 Gợi ý:
Nếu bạn muốn chặn cả việc cập nhật theme và plugin (không cho phép nhấn “Update”), bạn có thể thêm thêm dòng sau:

define('DISALLOW_FILE_MODS', true);

Cách 2: Giới hạn quyền xóa user trong WordPress

Nếu bạn có nhiều tài khoản admin hoặc muốn ngăn ai đó xóa user khác, hãy thêm đoạn mã sau vào functions.php của theme:

function disable_delete_user_capability() {
    if ( current_user_can('administrator') && !current_user_can('manage_network') ) {
        remove_cap( get_role('administrator'), 'delete_users' );
    }
}
add_action('init', 'disable_delete_user_capability');

🧠 Giải thích:

  • Đoạn mã này gỡ quyền “delete_users” khỏi vai trò quản trị viên (Administrator).

  • Bạn vẫn có thể khôi phục lại quyền này sau nếu cần bằng cách xóa dòng code.


Cách 3: Dùng plugin để chặn quyền

Nếu bạn không quen chỉnh sửa mã, có thể dùng các plugin hỗ trợ phân quyền như:

  • 🧩 User Role Editor – cho phép chỉnh sửa, thêm, xóa quyền chi tiết của từng nhóm user.

  • 🧩 Members – plugin nhẹ, dễ dùng, có thể tắt quyền xóa user, chỉnh sửa theme/plugin chỉ bằng thao tác click.

👉 Sau khi cài plugin, chỉ cần bỏ chọn các quyền:
delete_users, edit_themes, edit_plugins, update_plugins, update_themes.


Một số lưu ý quan trọng

  • Trước khi chỉnh sửa file hệ thống, hãy sao lưu website để tránh rủi ro.

  • Không nên chặn toàn bộ quyền admin nếu bạn cần cập nhật WordPress thường xuyên.

  • Chỉ áp dụng hạn chế cho những user phụ hoặc nhân viên kỹ thuật không chuyên.

  • Nếu bạn dùng plugin phân quyền, đừng kết hợp với code thủ công, tránh xung đột.


Kết luận

Việc chặn quyền xóa user và chỉnh sửa theme/plugin trong WordPress là bước quan trọng để nâng cao bảo mật websitegiảm thiểu rủi ro từ lỗi người dùng. Bạn có thể lựa chọn phương pháp phù hợp nhất — dùng code đơn giản hoặc cài đặt plugin hỗ trợ.

Bằng cách này, bạn sẽ kiểm soát tốt hơn quyền truy cập, giúp website WordPress hoạt động ổn định và an toàn hơn trong dài hạn.

Tags: chặn quyền xóa user, chặn chỉnh sửa theme plugin, phân quyền người dùng wordpress, giới hạn quyền quản trị wordpress, disable file editor wordpress, bảo mật wordpress, functions.php, wp-config.php, quản lý người dùng wordpress, ngăn chỉnh sửa code wordpress, plugin phân quyền wordpress, user role editor, members plugin, bảo vệ website wordpress

]]>
https://devfulls.com/chan-quyen-xoa-user-va-chinh-sua-theme-plugin-trong-wordpress-huong-dan-chi-tiet.html/feed 0
Vô hiệu hóa Gutenberg Editor và quay lại trình soạn thảo cũ trong wordpress. https://devfulls.com/vo-hieu-hoa-gutenberg-editor.html https://devfulls.com/vo-hieu-hoa-gutenberg-editor.html#respond Sat, 01 Nov 2025 10:24:38 +0000 https://devfulls.com/?p=1665

Từ phiên bản 5.0, WordPress đã chính thức tích hợp Gutenberg Editor — một trình soạn thảo dạng khối (block editor) được giới thiệu như bước tiến mới về trải nghiệm biên tập nội dung. Tuy nhiên, không phải ai cũng yêu thích sự thay đổi này. Nhiều người dùng vẫn muốn trở lại với Classic Editor – trình soạn thảo truyền thống, đơn giản và quen thuộc. Bài viết này devfulls.com sẽ hướng dẫn bạn cách vô hiệu hóa Gutenberg Editor, kích hoạt lại Classic Editor, cùng với việc phân tích nguyên nhân, ưu – nhược điểmnhững lưu ý cần biết khi thực hiện chuyển đổi.


Nội dung

Vì sao nhiều người muốn quay lại trình soạn thảo cũ?

Mặc dù Gutenberg được đánh giá là hiện đại và trực quan, nhưng vẫn tồn tại nhiều hạn chế khiến người dùng muốn quay về giao diện cũ, chẳng hạn như:

  • Khó sử dụng: Giao diện dạng khối phức tạp, mất thời gian làm quen.

  • Hiệu suất chậm hơn: Gutenberg đôi khi khiến quá trình tải và chỉnh sửa chậm hơn đáng kể.

  • Khả năng tương thích kém: Một số plugin và theme cũ không hoạt động ổn định với Gutenberg.

  • Thiếu linh hoạt: Các thao tác tùy chỉnh bị hạn chế hơn so với Classic Editor.

  • Không quen thuộc: Người đã dùng WordPress lâu năm thường thấy Classic Editor nhanh và dễ thao tác hơn.

Vô hiệu hóa Gutenberg Editor và quay lại trình soạn thảo cũ trong wordpress.
Vô hiệu hóa Gutenberg Editor và quay lại trình soạn thảo cũ trong wordpress.

Phương pháp 1: Cài đặt Plugin Classic Editor

Đây là cách đơn giản và an toàn nhất, được chính WordPress phát triển và khuyến nghị. Plugin Classic Editor giúp bạn dễ dàng khôi phục giao diện biên tập truyền thống chỉ trong vài bước:

Các bước thực hiện:

  1. Truy cập Dashboard > Plugins > Add New.

  2. Gõ từ khóa “Classic Editor” vào ô tìm kiếm.

  3. Chọn plugin chính chủ từ WordPress Team, nhấn Install Now.

  4. Sau khi cài đặt, bấm Activate để kích hoạt.

Ngay lập tức, giao diện soạn thảo cũ sẽ được phục hồi thay thế cho Gutenberg.

➡️ Tải plugin tại đây: Classic Editor


Phương pháp 2: Tắt Gutenberg qua file functions.php (không khuyến khích)

Ngoài việc dùng plugin, bạn có thể tắt Gutenberg bằng cách chèn đoạn mã vào file functions.php trong theme đang sử dụng. Tuy nhiên, cách này tiềm ẩn rủi ro:

  • Có thể gây xung đột hoặc lỗi hiển thị.

  • Khi theme được cập nhật, đoạn mã có thể bị xóa mất.

  • Yêu cầu kiến thức kỹ thuật để chỉnh sửa file an toàn.

Nếu bạn không am hiểu lập trình, tốt nhất không nên áp dụng cách này, mà nên chọn phương án plugin để đảm bảo an toàn.

function my_disable_gutenberg_posts( $current_status, $post_type ) {
    // Disabled post types
    $disabled_post_types = array( 'post' );

    // Change $can_edit to false for any post types in the disabled post types array
    if ( in_array( $post_type, $disabled_post_types, true ) ) {
        $current_status = false;
    }
    return $current_status;
}
add_filter( 'use_block_editor_for_post_type', 'my_disable_gutenberg_posts', 10, 2 );

Một số lưu ý quan trọng khi vô hiệu hóa Gutenberg Editor

  • 🧾 Sao lưu website trước khi thay đổi: Hãy tạo bản backup đầy đủ (database và file) để phòng lỗi xảy ra.

  • 🔄 Luôn cập nhật plugin: Đảm bảo Classic Editor được cập nhật thường xuyên để duy trì bảo mật và hiệu năng.

  • 🧩 Kiểm tra xung đột: Sau khi kích hoạt, hãy kiểm tra kỹ xem các tính năng khác có hoạt động ổn định không.

  • 💬 Liên hệ nhà phát triển: Nếu theme hoặc plugin gặp lỗi hiển thị, bạn nên liên hệ đơn vị phát triển để được hỗ trợ kịp thời.

Vô hiệu hóa Gutenberg Editor và quay lại trình soạn thảo cũ trong wordpress.
Vô hiệu hóa Gutenberg Editor và quay lại trình soạn thảo cũ trong wordpress.

Cách xử lý khi gặp sự cố khi vô hiệu hóa Gutenberg Editor

  • Nếu cài plugin Classic Editor nhưng vẫn hiển thị Gutenberg, hãy thử tắt và kích hoạt lại plugin, hoặc xem có plugin nào gây xung đột không.

  • Nếu bạn sửa functions.php và trang web bị lỗi, hãy khôi phục lại file từ bản sao lưu trước đó để tránh mất dữ liệu.


Một số plugin thay thế khác

Ngoài Classic Editor, bạn có thể tham khảo thêm một số lựa chọn khác như:

  • Disable Gutenberg: Cho phép tắt Gutenberg linh hoạt hơn, có thể chọn chỉ tắt cho từng loại bài viết cụ thể.

  • TinyMCE Advanced: Mở rộng tính năng của trình soạn thảo cổ điển, giúp chèn bảng, định dạng văn bản chuyên sâu hơn.

  • WPBakery Page Builder: Một giải pháp trực quan hơn cho người muốn kéo thả bố cục, thay thế cả Gutenberg lẫn Classic.

Mỗi plugin có ưu – nhược điểm riêng, vì vậy hãy lựa chọn theo nhu cầu thực tế của bạn.


Kết luận

Việc chọn giữa Gutenberg EditorClassic Editor phụ thuộc vào thói quen và phong cách làm việc của mỗi người. Nếu bạn thích sự đơn giản, nhanh gọn, hãy giữ lại Classic Editor. Ngược lại, nếu muốn tận dụng các tính năng mới và định hướng tương lai của WordPress, hãy dành thời gian làm quen với Gutenberg.

Dù lựa chọn phương pháp nào, hãy đảm bảo rằng website của bạn vẫn vận hành ổn định, bảo mật và hiệu quả nhất.

Tags: gutenberg, classic editor, vô hiệu hóa gutenberg, vô hiệu hóa Gutenberg Editor, tắt gutenberg, tắt trình soạn thảo block, quay lại trình soạn thảo cũ, disable gutenberg wordpress, classic editor plugin, soạn thảo wordpress, hướng dẫn wordpress, tối ưu wordpress, plugin wordpress, giao diện wordpress, block editor.

]]>
https://devfulls.com/vo-hieu-hoa-gutenberg-editor.html/feed 0
Hiển thị văn bản thay thế giá sản phẩm trong WordPress (WooCommerce) https://devfulls.com/van-ban-thay-the-gia-san-pham-trong-wordpress.html https://devfulls.com/van-ban-thay-the-gia-san-pham-trong-wordpress.html#respond Sun, 26 Oct 2025 10:26:49 +0000 https://devfulls.com/?p=1637

Trong nhiều cửa hàng trực tuyến, việc hiển thị giá ngay lập tức không phải lúc nào cũng phù hợp — đặc biệt với sản phẩm cần báo giá theo yêu cầu, hàng order hoặc giá thay đổi theo số lượng. Bài viết này devfulls.com sẽ hướng dẫn chi tiết cách hiển thị văn bản thay thế giá sản phẩm trong wordpress (ví dụ: “Liên hệ”, “Giá theo yêu cầu” hoặc “Call for price”), kèm giải pháp code an toàn, cách xử lý sản phẩm biến thể và lưu ý về structured data để không ảnh hưởng đến SEO. Nếu bạn muốn giữ trải nghiệm người dùng tốt đồng thời tối ưu công cụ tìm kiếm, hướng dẫn dưới đây sẽ cho bạn cả giải pháp nhanh lẫn nâng cao.

Nội dung

Tại sao cần hiển thị văn bản thay thế giá sản phẩm trong wordpress

Có nhiều trường hợp bạn không muốn hiển thị con số giá trực tiếp trên frontend:

  • Sản phẩm cần báo giá (B2B hoặc hàng order).

  • Giá thay đổi theo yêu cầu / theo số lượng.

  • Muốn ưu tiên liên hệ trước khi hiện giá.

  • Tránh cạnh tranh giá trực tiếp trên trang listing.


Những kịch bản thường gặp khi hiển thị văn bản thay thế giá sản phẩm trong wordpress

  • Thay giá thành chữ “Liên hệ” cho tất cả sản phẩm.
  • Chỉ thay cho sản phẩm có giá = 0 hoặc chưa thiết lập.

  • Chỉ thay cho sản phẩm thuộc một hoặc vài category (ví dụ gia-order).

  • Hiển thị giá với link tel: cho người dùng mobile.

  • Ẩn giá cho user chưa đăng nhập (login mới xem giá).

Cách thay thế văn bản thay thế giá sản phẩm trong wordpress chi tiết

Ghi chú: luôn đưa code vào child themefunctions.php hoặc file plugin riêng (site-specific plugin). Không chỉnh trực tiếp trong theme gốc.

A. Cách an toàn và phổ biến: dùng filter woocommerce_get_price_html

// Thay "Giá: Liên hệ" cho mọi sản phẩm
add_filter('woocommerce_get_price_html', 'devfulls_replace_price_with_text', 10, 2);
function devfulls_replace_price_with_text($price_html, $product) {
    // Ví dụ: nếu muốn thay cho tất cả -> trả về text
    return '<span class="price-contact">Giá: <a href="tel:0988123456">Liên hệ: 0988 123 456</a></span>';
}

Có điều kiện ví dụ: chỉ khi giá rỗng hoặc 0

add_filter('woocommerce_get_price_html', 'devfulls_price_if_empty', 10, 2);
function devfulls_price_if_empty($price_html, $product) {
    $price = $product->get_price();
    if ($price === '' || $price === null || floatval($price) == 0) {
        return '<span class="price-contact">Giá: Liên hệ để biết chi tiết</span>';
    }
    return $price_html;
}

Ví dụ: chỉ áp dụng cho category gia-order

add_filter('woocommerce_get_price_html', 'devfulls_price_by_cat', 10, 2);
function devfulls_price_by_cat($price_html, $product) {
    if (has_term('gia-order', 'product_cat', $product->get_id())) {
        return '<span class="price-contact">Giá: Liên hệ</span>';
    }
    return $price_html;
}

B. Override template single-product/price.php

Nếu cần chỉnh giao diện HTML cho giá (ví dụ thêm icon, class, layout), override template.

  1. Copy woocommerce/templates/single-product/price.php vào your-child-theme/woocommerce/single-product/price.php.

  2. Chỉnh đoạn echo <?php echo $product->get_price_html(); ?> thành logic bạn cần (hoặc gọi function filter bên trên).

Override thích hợp khi bạn muốn thay đổi markup hoặc thêm microdata tùy chỉnh.

Điều kiện nâng cao (ví dụ)

  • Chỉ hiển thị cho user chưa đăng nhập
add_filter('woocommerce_get_price_html', 'devfulls_price_hide_for_guests', 10, 2);
function devfulls_price_hide_for_guests($price_html, $product) {
    if (!is_user_logged_in()) {
        return '<a class="btn-contact" href="/dang-nhap">Đăng nhập để xem giá</a>';
    }
    return $price_html;
}
  • Theo role: current_user_can('wholesale_customer') hay tương tự.

  • Theo kho hàng: nếu !$product->is_in_stock() -> hiển thị “Tạm hết hàng — Liên hệ”.

Xử lý sản phẩm biến thể & structured data (schema)

WooCommerce tự thêm schema offers.price. Nếu chỉ thay đổi hiển thị giá (chỉ frontend), Google vẫn có thể đọc structured data do WooCommerce xuất ra. Nếu bạn muốn đồng bộ (ví dụ: ẩn giá cho Google/SEO hoặc cập nhật offers), bạn cần chỉnh structured data.

Ví dụ: thay đổi offers trong schema

add_filter('woocommerce_structured_data_product', 'devfulls_modify_structured_data', 10, 2);
function devfulls_modify_structured_data($markup, $product) {
    // Nếu bạn muốn remove price (ví dụ không muốn công khai) -> unset offers
    if (has_term('gia-order', 'product_cat', $product->get_id())) {
        if (isset($markup['offers'])) {
            unset($markup['offers']);
        }
    }
    return $markup;
}

Lưu ý SEO: nếu bạn xóa offers.price trên page sản phẩm, Google có thể không hiển thị rich results (price snippets). Quyết định này phụ thuộc mục tiêu: show price for SEO vs require contact for price.

Kiểm tra & test

  • Test trên trang sản phẩm đơn, danh sách (loop), trang shop, widget sản phẩm.

  • Kiểm tra mobile (tel: link) và desktop.

  • Test với cache (WP Super Cache, WP Rocket) — xóa cache sau khi thay đổi.

  • Test SEO: dùng Rich Results Test của Google (để xem có offers.price hay không).

  • Test với user roles khác nhau (logout, customer, admin).


Lưu ý SEO & UX khi bạn sử dụng văn bản thay thế giá sản phẩm trong wordpress

  • Nếu ẩn giá, bù lại hãy cung cấp CTA rõ ràng: số điện thoại, form “Yêu cầu báo giá”, chat.

  • Schema: cân nhắc giữ offers nếu bạn muốn sản phẩm hiển thị giá trong kết quả tìm kiếm.

  • Heading & nội dung: trên trang sản phẩm hãy giải thích ngắn lý do không có giá để giảm bounce (ví dụ: “Giá theo số lượng / Liên hệ để nhận báo giá tốt nhất”).

  • Meta tags: update meta description nếu nhiều sản phẩm ẩn giá — tránh gây hiểu lầm.

  • Tốc độ: code đơn giản, tránh hook nặng vào mỗi request product loop gây chậm site.

Một vài đoạn code hiển thị văn bản thay thế giá sản phẩm trong wordpress tham khảo:

  • Hiển thị chữ “Liên hệ” khi sản phẩm không có giá. Áp dụng cho tất cả cả mọi nơi
function devvn_wc_custom_get_price_html( $price, $product ) {
    if ( ! $product->get_price() ) {
        if ( $product->is_on_sale() && $product->get_regular_price() ) {
            $regular_price = wc_get_price_to_display( $product, array( 'qty' => 1, 'price' => $product->get_regular_price() ) );


            $price = wc_format_price_range( $regular_price, __( 'Free!', 'woocommerce' ) );
        } else {
            $price = '<a href="tel:0931696302" class="amount contact-price">' . __( 'Liên hệ', 'woocommerce' ) . '</a>';
        }
    }
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'devvn_wc_custom_get_price_html', 10, 2 );
  • Hiển thị chữ liên hệ ở card sản phẩm. Nhưng không áp dụng cho các sản phẩm trong trang chi tiết sản phẩm
function devvn_wc_custom_get_price_html( $price, $product ) {
    // Nếu đang ở trang product detail thì giữ nguyên $price gốc
    if ( is_product() ) {
        return $price;
    }


    // Chỉ những sản phẩm chưa đặt giá (get_price() == 0) mới áp dụng
    if ( ! $product->get_price() ) {


        // Nếu đang sale thì hiển thị "Giá sale – Free!"
        if ( $product->is_on_sale() && $product->get_regular_price() ) {
            $regular_price = wc_get_price_to_display( $product, array(
                'qty'   => 1,
                'price' => $product->get_regular_price(),
            ) );
            $price = wc_format_price_range( $regular_price, __( 'Free!', 'woocommerce' ) );


        // Ngược lại: show button Liên hệ
        } else {
            $price = '<a href="tel:0931696302" class="button contact-price">'
                . __( 'Liên hệ', 'woocommerce' )
                . '</a>';
        }
    }


    return $price;
}
add_filter( 'woocommerce_get_price_html', 'devvn_wc_custom_get_price_html', 10, 2 );
  • Hiển thị button “Liên hệ” ở card sản phẩm bao gồm cả card sản phẩm trong trang chi tiết sản phẩm. Không áp dụng cho phần thông tin chi tiết sản phẩm
function devvn_wc_custom_get_price_html( $price, $product ) {
    // 1. Nếu là trang detail và đúng sản phẩm đang xem ⇒ return giá gốc
    if ( is_singular( 'product' ) && $product->get_id() === get_queried_object_id() ) {
        return $price;
    }


    // 2. Còn lại: nếu sản phẩm không có giá (get_price() == 0) ⇒ hiển thị nút Liên hệ
    if ( ! $product->get_price() ) {
        // 2.1 Nếu sale + có regular price thì vẫn show "Giá sale – Free!"
        if ( $product->is_on_sale() && $product->get_regular_price() ) {
            $regular_price = wc_get_price_to_display( $product, [
                'qty'   => 1,
                'price' => $product->get_regular_price(),
            ] );
            $price = wc_format_price_range( $regular_price, __( 'Free!', 'woocommerce' ) );
        }
        // 2.2 Ngược lại show button Liên hệ
        else {
            $price = '<a href="tel:0931696302" class="button contact-price">'
                . __( 'Liên hệ', 'woocommerce' )
                . '</a>';
        }
    }


    return $price;
}
add_filter( 'woocommerce_get_price_html', 'devvn_wc_custom_get_price_html', 10, 2 );

Thông tin liên hệ

Hotline: 0931 696 302
Tags: Văn bản thay thế giá trong wordpress, văn bản thay thế giá woocomerce, thủ thuật wordpress, code wordpress,  thủ thuật woocomerce, trick wordpress, hiển thị giá, ẩn giá wooCommerce, hide price wooCommerce, liên hệ để biết giá, báo giá sản phẩm, wooCommerce tips, seo wooCommerce
]]>
https://devfulls.com/van-ban-thay-the-gia-san-pham-trong-wordpress.html/feed 0
Checklist 7 bước tăng tốc wordpress https://devfulls.com/checklist-7-buoc-tang-toc-wordpress.html https://devfulls.com/checklist-7-buoc-tang-toc-wordpress.html#respond Thu, 25 Sep 2025 16:19:18 +0000 https://devfulls.com/?p=1521
Bạn muốn trang chạy nhanh hơn, cải thiện trải nghiệm người dùng và SEO? Thực hiện 7 bước sau:
Nội dung

Bước 1 — Cập nhật PHP lên 8.1 / 8.2+ | Tăng tốc wordpress

Kiểm tra phiên bản PHP host đang dùng, nếu <= 7.4 thì đề xuất nâng lên 8.1 hoặc 8.2. Bởi vì PHP mới hơn xử lý mã nhanh hơn, giảm thời gian xử lý request PHP và CPU usage. Nâng cấp thường tăng hiệu năng đáng kể (đặc biệt trang nhiều plugin / dynamic).
Lưu ý: Trước khi nâng, test trên staging: một số plugin/theme cũ có thể không tương thích.
Cập nhật phiên bản PHP
Cập nhật phiên bản PHP

Bước 2 — Chọn hosting & cấu hình đúng | Tăng tốc wordpress

Dùng hosting có NVMe SSD, hỗ trợ HTTP/2 hoặc HTTP/3, có sẵn OPcache, và có option object cache (Redis / Memcached). Nếu site traffic lớn, cân nhắc managed WordPress hoặc VPS với caching layer.
Disk IO, latency, và network protocol ảnh hưởng lớn tới TTFB. Hosting yếu khiến mọi tối ưu khác kém tác dụng.
Tiêu chí chọn host nhanh: NVMe, PHP-FPM, OPcache ON, HTTP/2/3, location server gần người dùng, hỗ trợ Redis/LiteSpeed.
Gợi ý: Nếu không muốn quản trị, dùng managed WP; nếu muốn rẻ & control, chọn VPS + cấu hình caching.
Lựa chọn hosting phù hợp
Lựa chọn hosting phù hợp

Bước 3 — Cài plugin cache & cấu hình | Tăng tốc wordpress

Cài plugin cache phù hợp hosting: Nếu host dùng LiteSpeed thì cài đặt plugin LiteSpeed Cache (tích hợp server-level cache nhanh). Nếu không thì sử dụng các plugin như WP Rocket (paid) hoặc W3 Total Cache / WP Super Cache.
Thiết lập cơ bản: bật Page Cache (full-page), Browser Cache (expires headers), GZIP/Brotli, preload cache, object cache (Redis/Memcached) nếu có.
Cache giảm số request PHP, trả trang tĩnh trực tiếp cho user, giảm TTFB & CPU.
Lưu ý: Minify/concat JS-CSS có thể gây lỗi hiển thị; test kỹ sau khi bật. Nếu dùng WP Rocket, feature tích hợp (defer, delay JS) rất tiện.
Các plugin cache trong wordpress
Các plugin cache trong wordpress

Bước 4 — Dùng CDN (Content Delivery Network) | Tăng tốc wordpress

Kết nối CDN để phân phối ảnh, CSS, JS từ edge server gần người dùng (Cloudflare free, BunnyCDN, KeyCDN…).
CDN giảm độ trễ mạng và tải server gốc. Kết hợp cache plugin + CDN cải thiện tốc độ toàn cầu.
Cấu hình hữu ích: bật HTTP/2, enable Brotli, set cache-control cho static assets, bật image optimization (nếu CDN hỗ trợ).
Lưu ý: Cloudflare có thêm layer bảo mật/WAF; BunnyCDN thường cho hiệu năng tốt với chi phí hợp lý.
Sử dụng CDN trong wordpress
Sử dụng CDN trong wordpress

Bước 5 — Tối ưu ảnh & media | Tăng tốc wordpress

Nén ảnh (lossy/lossless).
Convert sang WebP hoặc AVIF (hiệu quả hơn JPEG/PNG).
Bật lazy-loading cho ảnh, iframe (WordPress hiện có lazy-load native).
Dùng plugin: ShortPixel / Imagify / EWWW / Smush / Optimole — chọn plugin hỗ trợ convert WebP/AVIF và serve WebP khi trình duyệt hỗ trợ.
Ảnh thường chiếm phần lớn dung lượng trang; tối ưu ảnh cải thiện LCP nhiều nhất.
Lưu ý kỹ thuật: Khi chuyển sang WebP/AVIF, vẫn nên giữ fallback cho trình duyệt không hỗ trợ (plugin sẽ lo việc này). Với nhiều ảnh cũ, dùng bulk optimization (plugin có tính năng batch).
Tôi ưu hình ảnh trước khi tải lên wordpress
Tôi ưu hình ảnh trước khi tải lên wordpress

Bước 6 — Giảm plugin & tối giản tài nguyên | Tăng tốc wordpress

Gỡ plugin không dùng, ẩn hoặc vô hiệu hóa plugin nặng (ví dụ: page-builder nặng, plugin thống kê chiếm resources).
Dùng Asset CleanUp hoặc Perfmatters để dọn CSS/JS không cần thiết trên trang cụ thể (ví dụ chỉ load form script trên trang có form).
Giảm external requests (fonts, 3rd-party scripts). Nếu dùng Google Fonts, preload hoặc self-host fonts.
Mỗi plugin thêm request, file CSS/JS, hook — tăng payload & JS execution time. Tắt resource không cần giúp giảm render-blocking và INP.
Lưu ý: Kiểm tra dependencies trước khi xoá plugin (ví dụ plugin A có thể cần plugin B).

Bước 7 — Kiểm tra & theo dõi (PageSpeed / Lighthouse / WebPageTest) | Tăng tốc wordpress

Trước và sau mỗi thay đổi, chạy: Google PageSpeed Insights (Lighthouse), WebPageTest, GTmetrix, hoặc Chrome DevTools (Performance tab).
Tập trung chỉ số Core Web Vitals: LCP (Largest Contentful Paint), INP (hoặc FID cũ), CLS (Cumulative Layout Shift), và TTFB.
Ghi lại metric trước/sau để đo kết quả.
Chỉ số này phản ánh trải nghiệm thật sự người dùng; tối ưu cần dựa trên số liệu.
Lưu ý: PageSpeed cung cấp đề xuất (defer JS, preconnect, remove unused CSS…) — ưu tiên làm theo các đề xuất có tác động lớn.

Mẹo & thủ thuật kỹ thuật | Tăng tốc wordpress

Preload / Preconnect: Preconnect tới font, API quan trọng (ví dụ <link rel=”preconnect” href=”https://fonts.gstatic.com” crossorigin>). Dùng cẩn thận — chỉ preload tài nguyên quan trọng.
Critical CSS: Sinh critical CSS cho above-the-fold để giảm render-blocking; một số plugin cache/optimization có tính năng này.
Defer & Async JS: Defer các script không cần thiết cho initial render; delay scripts không quan trọng (WP Rocket có option “Delay JavaScript execution”).
Database cleanup: Xóa transient cũ, revisions nhiều -> plugin như WP-Optimize hoặc WP-CLI: wp post delete $(wp post list –post_type=’revision’ –format=ids) (test cẩn thận).
Autoptimize & Minify: Dùng Autoptimize để combine/minify CSS/JS nếu cache plugin không xử lý tốt — test kỹ vì có thể break layout.
Use HTTP/3 & Brotli nếu host hỗ trợ — giảm latency & compress tốt hơn.

Công cụ & lệnh hữu ích | Tăng tốc wordpress

Kiểm tra phiên bản PHP: từ cPanel hoặc php -v (nếu SSH).
Tắt plugin: wp plugin deactivate plugin-name
Regenerate thumbnails: wp media regenerate –yes
Clear cache (tùy plugin): wp cache flush hoặc plugin cache có nút clear cache.
Tools đo: PageSpeed Insights, WebPageTest (waterfall + filmstrip), GTmetrix, Chrome DevTools (Network & Performance).

Những lỗi thường gặp & cách khắc phục | Tăng tốc wordpress

Bật minify/concat gây lỗi CSS/JS → tắt tính năng đó hoặc exclude file problem.
Image convert bị vỡ → điều chỉnh quality (80% cho ảnh sản phẩm thường ổn).
Cache không update khi chỉnh content → bật cache purge on update hoặc clear cache thủ công.
Phân tích sai trên PageSpeed → dùng nhiều tools (WebPageTest + Lighthouse) để có góc nhìn thực tế.

Thông tin liên hệ

Hotline: 0931 696 302
]]>
https://devfulls.com/checklist-7-buoc-tang-toc-wordpress.html/feed 0