Loading Now

Queries trong WordPress là gì? Hướng dẫn toàn tập từ cơ bản đến nâng cao

Queries trong WordPress là gì? Hướng dẫn toàn tập từ cơ bản đến nâng cao

Trong WordPress, “query” là cách mà hệ thống lấy dữ liệu từ database (thường là bài viết) để hiển thị ra website. Nếu bạn từng thấy vòng lặp (Loop) như while ( have_posts() ) : the_post();, thì đó chính là một dạng query.

Hiểu và sử dụng thành thạo WordPress queries giúp bạn:

  • Tùy chỉnh giao diện hiển thị bài viết
  • Tạo trang blog theo danh mục riêng
  • Làm slider, bài viết liên quan, custom post type, v.v.

Query mặc định trong WordPress là gì?

Mỗi khi người dùng truy cập vào một trang (trang chủ, bài viết, category…), WordPress sẽ tự động tạo ra một truy vấn mặc định. Query này lấy dữ liệu phù hợp từ database, như bài viết thuộc danh mục, tác giả, hoặc post type tương ứng.

Bạn có thể truy cập query hiện tại bằng biến toàn cục: $wp_query.


3 cách tạo query trong WordPress

1. query_posts() – KHÔNG KHUYÊN DÙNG

query_posts('posts_per_page=5');
  • Ghi đè query mặc định
  • Làm hỏng phân trang nếu không cẩn thận
  • WordPress khuyến cáo tránh dùng, trừ khi bạn thực sự biết rõ

🔗 Lý do không nên dùng query_posts


2. WP_Query – cách tạo query mới linh hoạt nhất

$args = array(
  'post_type' => 'post',
  'posts_per_page' => 3,
  'category_name' => 'tin-tuc'
);

$query = new WP_Query($args);

if ( $query->have_posts() ) {
  while ( $query->have_posts() ) {
    $query->the_post();
    the_title();
  }
  wp_reset_postdata();
}
  • Không ảnh hưởng query gốc
  • Linh hoạt và chuẩn nhất khi làm custom layout, section bài viết

🔗 WP_Query Reference – Developer Handbook


3. get_posts() – đơn giản và nhanh

$posts = get_posts(array(
  'numberposts' => 5,
  'post_type' => 'post'
));

foreach ( $posts as $post ) {
  setup_postdata($post);
  the_title();
}
wp_reset_postdata();
  • Dành cho truy vấn nhỏ (dưới 10 bài viết)
  • Trả về mảng bài viết, xử lý như biến thông thường
  • Không hỗ trợ phân trang

Các tham số phổ biến khi query

Tham sốCông dụng
post_typeLoại nội dung (post, page, custom_post_type)
posts_per_pageSố lượng bài viết hiển thị
category_nameTên danh mục
tagTên thẻ
orderby, orderSắp xếp kết quả
meta_queryLọc theo custom field
tax_queryLọc theo taxonomy tùy chỉnh

Bạn có thể kết hợp nhiều tham số để tạo các truy vấn mạnh mẽ và tùy biến cao.


Một số tips khi làm việc với query

  • Luôn gọi wp_reset_postdata() sau khi dùng WP_Query hoặc get_posts()
  • Dùng pre_get_posts để thay đổi query mặc định đúng cách
  • Với truy vấn có phân trang, đừng quên thêm 'paged' => get_query_var('paged') vào $args

Tổng kết

Query là trái tim của việc hiển thị nội dung trong WordPress. Khi bạn hiểu cách WordPress lấy dữ liệu và cách tùy chỉnh truy vấn, bạn sẽ làm được rất nhiều thứ thú vị:

  • Layout tùy chỉnh
  • Trang lọc bài viết theo taxonomy
  • AJAX load bài viết
  • Module “bài viết liên quan”, “được xem nhiều nhất”…

Share this content:

Post Comment

Bạn có thể đã bỏ qua