Tùy chỉnh xóa cache trong WP Rocket, chỉ tạo lại cache khi đăng bài mới

Khi bạn sử dụng WP Rocket cho website WordPress có nhiều tác giả đăng bài thường xuyên, việc plugin này tự động xóa và tạo lại cache liên tục có thể gây tăng tải máy chủ. Bài viết này sẽ hướng dẫn bạn cách vô hiệu hóa việc xóa cache tự động, đồng thời chỉ tạo lại cache khi đăng bài mới.

Tùy chỉnh xóa cache trong WP Rocket, chỉ tạo lại cache khi đăng bài mới

Ví dụ trang web của bạn có rất nhiều tác giả thường xuyên đăng bài, việc WP Rocket xóa cache liên tục sẽ tạo gánh nặng rất lớn cho máy chủ. Để giải quyết vấn đề này, bạn có thể làm theo các bước sau.

Tắt chức năng xóa cache tự động

WP Rocket cung cấp một plugin mở rộng có tên WP Rocket | Disable Cache Clearing. Bạn cần cài đặt plugin này để ngăn WP Rocket xóa cache mỗi khi cập nhật nội dung.

Sau khi cài plugin, WP Rocket sẽ không còn tự động xóa cache khi bạn chỉnh sửa bài viết, trang, hoặc cập nhật plugin/theme nữa.

Ngăn xóa cache trang chủ

Tại functions.php, các bạn thêm dòng sau.

/**
 * Ngăn xóa cache trang chủ
 */
add_filter( 'rocket_clean_home_after_clean_post', '__return_false' );

Tạo lại cache khi đăng bài mới

Bạn vẫn nên tạo lại cache cho trang chủ và các danh mục liên quan khi có bài viết mới được đăng.

Thêm đoạn mã sau vào functions.php:

/**
 * Xóa cache khi bài viết mới được đăng (hoặc được cập nhật lên trạng thái publish)
 */
function clear_cache_when_publish_post($post_id, $post, $update) {
    if (wp_is_post_revision($post_id)) return;

    // Chỉ xử lý bài viết thường và trạng thái 'publish'
    if ($post->post_type !== 'post' || $post->post_status !== 'publish') return;

    // Chỉ thực hiện khi là bài viết mới hoặc chuyển từ trạng thái khác sang publish
    if (!$update || get_post_status($post_id) !== 'publish') {

        // Xóa cache trang chủ nếu plugin Rocket hỗ trợ
        if (function_exists('rocket_clean_home')) {
            rocket_clean_home();
        }

        // Xóa cache các trang danh mục liên quan
        if (function_exists('rocket_clean_files')) {
            foreach ((array) get_the_category($post_id) as $category) {
                $cat_link = get_category_link($category->term_id);
                if ($cat_link) {
                    rocket_clean_files($cat_link);
                }
            }
        }
    }
}
add_action('wp_insert_post', 'clear_cache_when_publish_post', 10, 3);

Kết luận

Bằng cách sử dụng plugin hỗ trợ và các đoạn mã tùy chỉnh, bạn có thể giảm thiểu hoạt động xóa cache không cần thiết và chỉ tạo lại cache khi thực sự cần thiết, giúp tối ưu hiệu suất cho các website có nhiều tác giả hoặc nội dung thay đổi liên tục.

Chúc bạn thành công!

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...