Tăng hiệu suất truy vấn WP_Query trong WordPress

WP_Query là công cụ mạnh mẽ trong WordPress, nhưng nếu dùng không đúng cách, nó có thể gây chậm site – đặc biệt khi số lượng bài viết lớn hoặc truy vấn quá thường xuyên. Dưới đây là các thủ thuật giúp bạn tăng hiệu suất khi sử dụng WP_Query.

Tăng hiệu suất truy vấn WP_Query trong WordPress

1. Giới hạn số lượng kết quả

Luôn chỉ định số lượng bài viết cụ thể trong mỗi truy vấn, thay vì để mặc định hoặc -1:

$query = new WP_Query( array(
    'posts_per_page' => 10
));

2. Bỏ qua sticky post & số lượng dòng

Theo mặc định, WordPress xử lý sticky post và đếm tổng số bài viết khớp truy vấn. Nếu bạn không cần hai thứ này (ví dụ hiển thị ở sidebar, footer, hoặc section phụ), hãy tắt để tăng tốc:

$query = new WP_Query( array(
    'posts_per_page'        => 10,
    'ignore_sticky_posts'   => true,
    'no_found_rows'         => true
));

Lưu ý: Khi dùng no_found_rows => true, bạn sẽ không thể sử dụng phân trang dựa vào $query->max_num_pages.

3. Chỉ lấy ID nếu không cần toàn bộ dữ liệu

Nếu bạn chỉ cần danh sách ID bài viết để xử lý tiếp bằng PHP, nên dùng:

$query = new WP_Query( array(
    'posts_per_page' => 10,
    'fields'         => 'ids'
));

4. Cẩn trọng với meta_query

Truy vấn sử dụng meta_query sẽ gây chậm đáng kể nếu không có index phù hợp. Ưu tiên dùng taxonomy nếu có thể, hoặc dùng plugin tối ưu index như:

5. Không dùng orderby => rand trên site lớn

Truy vấn ngẫu nhiên với 'orderby' => 'rand' gây chậm vì MySQL phải scan toàn bảng. Nếu bắt buộc phải random, nên cache ID trước rồi chọn bằng PHP.

6. Tắt cache nếu truy vấn không cần dùng lại

Nếu truy vấn chỉ chạy 1 lần trong request và không cần lưu vào object cache:

$query = new WP_Query( array(
    'posts_per_page' => 10,
    'cache_results'  => false
));

Kết luận

Việc tối ưu WP_Query giúp bạn giảm tải cho database và tăng tốc toàn trang – đặc biệt quan trọng với các site có nhiều bài viết hoặc nhiều truy vấn động. Hãy áp dụng linh hoạt từng thủ thuật theo ngữ cảnh sử dụng thực tế.

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