- Lam's Notes
- Posts
- BricksBuilder: Lấy bài viết cho Author, nhưng mà... có biến!
BricksBuilder: Lấy bài viết cho Author, nhưng mà... có biến!

Hôm nay anh em mình lại ‘quẩy’ tiếp với BricksBuilder, chiến một đề nho nhỏ mà cũng ‘xoắn não’ phết.
Chuyện là thế này, khách hàng yêu cầu hiển thị danh sách bài viết của tác giả (Author) trên trang cá nhân. Nghe thì ‘dễ như ăn kẹo’, nhưng ‘thật ra ăn hành‘. Yêu cầu đơn giản ‘dễ mà em‘ ấy lại đi kèm một đống điều kiện:
‘Lọc’ ra bài viết cụ thể: Khách hàng không muốn hiển thị một số bài viết nhất định (ví dụ như bài viết ẩn, bài ghim chẳng hạn!).
Website vẫn phải nhanh: không được ì ạch rùa bò.
‘Nghĩ nát óc’ một hồi, cuối cùng mình mới nhảy số ra giải pháp với Query ‘thần thánh’ trong BricksBuilder. Code của em nó đây, anh em ‘chiêm ngưỡng’:
return [
// Loại bài viết được truy vấn: 'post'
'post_type' => 'post',
// Số lượng bài viết trả về: 3
'posts_per_page' => 3,
// Lấy bài viết của tác giả có ID là '{post_author:id}'
'author' => '{post_author:id}',
// Loại trừ bài viết có ID là '{post:id}' khỏi kết quả truy vấn
'post__not_in' => ['{post:id}'],
// Sắp xếp kết quả theo ngày đăng, theo thứ tự giảm dần (mới nhất lên đầu)
'orderby' => 'date',
'order' => 'DESC',
// Không tính số lượng bài viết tìm thấy
'no_found_rows' => true,
// Không tải cache của metadata bài viết
'update_post_meta_cache' => false,
// Không tải cache của taxonomy bài viết
'update_post_term_cache' => false,
];
Giải thích ‘sương sương’ cho anh em hiểu thêm nhé:
Lấy bài viết có
post_type
là'post'
.Giới hạn số lượng bài viết trả về là
3
.Lấy bài viết của tác giả có ID là
'{post_author:id}'
.Loại trừ bài viết có ID là
'{post:id}'
khỏi kết quả truy vấn.Sắp xếp kết quả theo ngày đăng, theo thứ tự giảm dần (mới nhất lên đầu).
Không tính số lượng bài viết tìm thấy.
Không tải cache của metadata và taxonomy bài viết.
Kết quả thì bao ngon luôn! Website vẫn nhanh như gió, danh sách bài viết chính xác.
Chia sẻ một chút ‘bí kíp’ với anh em BricksBuilder. Hy vọng bài viết hữu ích và ‘gây cười’ cho anh em. Chúc anh em code vui vẻ!
Reply