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õ
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
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_type | Loại nội dung (post , page , custom_post_type ) |
posts_per_page | Số lượng bài viết hiển thị |
category_name | Tên danh mục |
tag | Tên thẻ |
orderby , order | Sắp xếp kết quả |
meta_query | Lọc theo custom field |
tax_query | Lọ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ùngWP_Query
hoặcget_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