<?php

// 🔒 Chặn WordPress lấy thông tin cập nhật core → không còn kiểm tra phiên bản mới
add_filter('pre_site_transient_update_core', '__return_null');

// 🔒 Chặn kiểm tra & ghi transient cập nhật plugin → tránh truy vấn update_plugins
add_filter('pre_site_transient_update_plugins', '__return_null');

// 🔒 Chặn kiểm tra & ghi transient cập nhật theme
add_filter('pre_site_transient_update_themes', '__return_null');

// 🔒 Chặn kiểm tra & ghi transient cập nhật bản dịch (translations)
add_filter('pre_site_transient_update_translations', '__return_null');

// ❌ Gỡ hành vi tạo lịch kiểm tra cập nhật định kỳ (cron)
remove_action('init', 'wp_schedule_update_checks');

// ❌ Gỡ các hành vi kiểm tra cập nhật khi vào admin (nền)
remove_action('admin_init', '_maybe_update_core');         // core
remove_action('admin_init', '_maybe_update_plugins');      // plugin
remove_action('admin_init', '_maybe_update_themes');       // theme
remove_action('admin_init', '_maybe_update_translations'); // dịch

// ❌ Gỡ kiểm tra phiên bản WordPress (core version check)
remove_action('wp_version_check', 'wp_version_check');

// ❌ Gỡ cập nhật plugin khi truy cập các trang liên quan
remove_action('load-plugins.php', 'wp_update_plugins');
remove_action('load-update.php', 'wp_update_plugins');
remove_action('load-update-core.php', 'wp_update_plugins');

// ❌ Gỡ cập nhật theme khi vào trang Themes
remove_action('load-themes.php', 'wp_update_themes');

// ❌ Gỡ kiểm tra plugin/theme khi admin load
remove_action('admin_init', 'wp_update_plugins');
remove_action('admin_init', 'wp_update_themes');

// 🧹 Xóa các lịch trình cron đã tồn tại (nếu có)
add_action('init', function() {
    // Xóa lịch cron kiểm tra core
    wp_clear_scheduled_hook('wp_version_check');

    // Xóa cron kiểm tra plugin
    wp_clear_scheduled_hook('wp_update_plugins');

    // Xóa cron kiểm tra theme
    wp_clear_scheduled_hook('wp_update_themes');

    // Xóa cron tự động cập nhật chung
    wp_clear_scheduled_hook('wp_maybe_auto_update');
});

Nên dùng khi WordPress là Headless CMS và cần tối ưu hóa:

🧱 1. WordPress chỉ làm backend (API), không cần admin giao diện

  • Không sử dụng giao diện người dùng, frontend, theme → cập nhật theme là dư thừa.

  • Không cần dịch (translation) → tắt update dịch thuật giúp giảm bớt truy vấn.


2. Ưu tiên hiệu suất, giảm tải CPU/DB trên server

Khi dùng WordPress với cơ sở dữ liệu lớn (hàng ngàn post/user/term...), việc tắt hệ thống cập nhật không chỉ chặn truy vấn không cần thiết mà còn:


🔹 Giảm số lượng truy vấn SELECT/UPDATE đến bảng wp_options

      • Các transient như _site_transient_update_plugins, _site_transient_update_core liên tục được ghi đè hoặc truy vấn khi admin load.

      • Khi dữ liệu bảng wp_options lớn (đặc biệt autoload = 'yes' nhiều), các truy vấn này làm giảm tốc độ toàn hệ thống.

🔹 Giảm hoạt động ghi I/O vào ổ cứng/memory cache

      • Mỗi lần update transient là một lần ghi vào bảng wp_options hoặc hệ thống cache object (như Memcached, Redis).

      • Với site lớn, mỗi ghi thừa như vậy là lãng phí I/O → gây ảnh hưởng cả frontend.

🔹 Tăng tốc độ phản hồi REST API / GraphQL

      • Headless CMS thường dùng wp-json/wp/v2/... hoặc endpoint tùy chỉnh.

      • Một số plugin hook vào rest_api_init rồi kiểm tra cập nhật → làm chậm từng request API, nhất là khi số lượng plugin lớn.

🔹 Tránh hiện tượng tranh chấp ghi (lock) bảng wp_options

      • Khi có nhiều người vào admin, hoặc cron chạy song song, có thể xảy ra lock tạm thời → gây chậm hoặc lỗi session.

      • Tắt update → tránh ghi đè ngẫu nhiên, đảm bảo tính ổn định truy cập khi load cao.

🔹 Giảm kích thước bản backup database

      • Không còn transient update thừa → bản sao lưu DB sạch hơn, nhỏ hơn.

      • Phù hợp cho môi trường CI/CD hoặc deploy container (Docker, K8s...)

🔹 Tối ưu admin UI khi có nhiều plugin/theme

      • Với 50+ plugin, mỗi lần WordPress check update sẽ query từng cái → tốn tài nguyên.

      • Tắt hệ thống update giúp admin load nhanh hơn, nhẹ hơn.

🔐 3. Bạn kiểm soát mã nguồn qua Git / CI/CD

      • Cập nhật core/plugin/theme thông qua Git pull, rsync, deploy tool (Deployer, Capistrano, GitHub Actions…).

      • Không cần WordPress tự kiểm tra hay ghi gì vào DB → giúp DB sạch và predict được trạng thái hệ thống.


🚫 4. Tránh xung đột do plugin/theme tự update sai lúc

      • Một số plugin (ví dụ WooCommerce, ACF Pro) có thể update gây lỗi nếu không kiểm soát được version.

      • Headless CMS thường dùng custom plugin/API → không nên để auto update làm vỡ schema hoặc REST route.


🔄 5. Bạn có routine kiểm tra cập nhật định kỳ ngoài WordPress

      • Ví dụ: bạn có cron shell gửi báo cáo hàng tuần về các bản cập nhật chưa được áp dụng.

      • Khi đó, bạn có thể tắt hoàn toàn update của WordPress và tự xử lý thủ công.


👥 6. Ít người dùng admin, hoặc chỉ 1 người vận hành

      • Không cần các tính năng thông báo update trong admin.

      • Giảm clutter trong giao diện quản trị (đỡ rối, đỡ hiện số đỏ ở "Plugins", "Themes").


🌐 7. Không cần kết nối ra ngoài (offline / intranet)

      • Site headless CMS chạy nội bộ, không có hoặc không cần truy cập đến api.wordpress.org.


🧩 Tổng kết ngắn:

Mục tiêu bạn đang cần Có nên dùng không?
Tăng tốc độ load admin/API ✅ Rất nên
Giảm truy vấn SQL vào DB ✅ Rất nên
WordPress chỉ để quản lý nội dung ✅ Rất nên
Quản lý code bằng Git ✅ Nên
Không cần thông báo cập nhật ✅ Nên

Bạn cũng có thể combine thêm:

      • Tắt toàn bộ widget / admin notices không cần thiết

      • Tắt heartbeat

      • Tắt cron và dùng cron hệ thống

 

Khi sử dụng WordPress như một Headless CMS, việc tắt hoàn toàn hệ thống cập nhật tự động (core, plugin, theme, dịch thuật) là một lựa chọn hợp lý và nên làm trong nhiều trường hợp, đặc biệt nếu bạn:

      • Muốn tối ưu hiệu suất hệ thống (CPU, RAM, truy vấn SQL),

      • Quản lý mã nguồn qua Git hoặc triển khai thủ công,

      • Không sử dụng giao diện frontend hoặc theme,

      • có quy trình cập nhật riêng biệt ngoài WordPress.

Việc tắt cập nhật không chỉ giúp giảm tải cho cơ sở dữ liệu mà còn đảm bảo sự ổn định, kiểm soát, và bảo mật trong môi trường vận hành chuyên nghiệp.

Tuy nhiên, bạn cần chủ động theo dõi và cập nhật thủ công định kỳ, để tránh bỏ sót các bản vá quan trọng ảnh hưởng đến bảo mật hệ thống.