Tối ưu Custom Post Type và ACF để không tốn hiệu năng

Custom Post Type (CPT) và ACF là bộ đôi cực kỳ mạnh mẽ trong WordPress để mở rộng chức năng. Tuy nhiên nếu dùng không cẩn thận, chúng có thể gây chậm site rõ rệt. Bài viết này sẽ hướng dẫn bạn cách tổ chức CPT và ACF một cách thông minh, hiệu quả, và tiết kiệm tài nguyên nhất.

Tối ưu Custom Post Type và ACF để không tốn hiệu năng

Vì sao CPT và ACF dễ gây nặng?

Lý do chính: Dữ liệu ACF được lưu trong bảng postmeta, khi số lượng lớn sẽ dẫn đến nhiều truy vấn meta_query. Ngoài ra, việc lạm dụng acf_form() hay lặp nhiều field group cũng góp phần làm chậm site.

Mẹo tối ưu khi tạo Custom Post Type

Hành động Giải thích
Đặt 'has_archive' => false nếu không cần Tránh tạo archive page không dùng đến (giảm truy vấn rewrite + query)
Không dùng supports => ['editor'] nếu không cần Tránh render trình soạn thảo thừa trong admin
Tắt REST API nếu không dùng 'show_in_rest' => false sẽ giảm expose + tăng bảo mật

Mẹo tối ưu khi dùng ACF

  • Chỉ tạo field group áp dụng đúng nơi cần dùng – tránh “show if post type = all”
  • Dùng get_field() thay vì the_field() để kiểm soát output
  • Sử dụng acf-json để lưu field group vào file – giảm query DB
  • Tránh lồng repeater nhiều tầng nếu không cần thiết
  • Dùng lazyload hoặc AJAX để nạp các field nặng hoặc ít dùng

Kỹ thuật nâng cao: preload ACF với update_post_meta

Nếu bạn hiển thị ACF ở frontend nhưng không cần sửa, hãy preload dữ liệu vào meta gốc thay vì gọi get_field() mỗi lần load.

// preload trong quá trình save
add_action('save_post', function($post_id) {
    $value = get_field('custom_field', $post_id);
    update_post_meta($post_id, '_preload_custom_field', $value);
});

Sau đó chỉ cần gọi get_post_meta($post_id, '_preload_custom_field', true) để hiển thị nhanh hơn.

Lưu ý về admin UX

  • Ẩn các field ACF không cần thiết bằng CSS hoặc JS
  • Giảm số lượng field bằng cách gom nhóm logic
  • Tạo layout ACF hợp lý (tabs, accordion) để tránh lag form

Kết luận

Sức mạnh của CPT và ACF đi kèm với trách nhiệm tối ưu. Khi bạn dùng đúng cách, hệ thống sẽ vừa linh hoạt vừa nhẹ nhàng.

Hãy xem lại các field, post type hiện tại của bạn – liệu có đang dùng đúng và đủ chưa?

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...