• 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 bài toán nho nhỏ mà ‘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ì có vẻ ‘dễ như ăn kẹo’, nhưng ’ đời không như là mơ’. Yêu cầu ‘đơn giản’ ấy lại đi kèm một đống ‘điều kiện’ ‘trời ơi đất hỡi’:

  1. ‘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 ‘bí mật’ chẳng hạn!).

  2. ‘Tăng tốc’ website: Website phải ‘nhanh như chớp’, không được ‘ì ạch’ như ‘rùa bò’.

‘Nghĩ nát óc’ một hồi, cuối cùng cũng ‘nảy số’ ra giải pháp ‘bá đạo’ với Query ‘thần thánh’ trong BricksBuilder. ‘Mã’ code ‘thần thánh’ đây, anh em ‘chiêm ngưỡng’:

return [
	'post_type' => 'post', // Loại bài viết, ở đây là 'post'
	'posts_per_page' => 2, // Số lượng bài viết cần lấy, ở đây là 2
	'no_found_rows' => true, // 'Tắt' chức năng đếm tổng số bài viết
	'author' => {author_meta:ID}, // Lấy bài viết của tác giả hiện tại
	'post__not_in' => [ {post_id} ], // Loại trừ bài viết có ID cụ thể
	'update_post_meta_cache' => false, // 'Tắt' cache metadata
	'update_post_term_cache' => false, // 'Tắt' cache term
]; 

Giải thích ‘sương sương’ cho anh em ‘dễ hiểu’ nhé:

  • post_type: ‘Dễ như ăn cháo’, chỉ định loại bài viết cần lấy, ở đây là ‘post’.

  • posts_per_page: ‘Chuyện nhỏ’, giới hạn số lượng bài viết, ở đây là 2.

  • no_found_rows: ‘Chiêu’ này ‘hay ho’ nè! ‘Bật’ nó lên để ‘tắt’ chức năng đếm tổng số bài viết, giúp tăng tốc query ‘vèo vèo’.

  • author: ‘Lấy’ bài viết của ‘ai’ đây? Chính là tác giả hiện tại!

  • post__not_in: ‘Loại’ ngay những bài viết ‘không mong muốn’ ra khỏi danh sách.

  • update_post_meta_cache và update_post_term_cache: Hai ‘chiêu’ này giúp luôn query bài viết mới nhất.

‘Kết quả’ thì ‘miễn chê’ luôn! Website ‘nhanh như gió’, danh sách bài viết ‘chính xác’ đến từng ‘centimet’.

‘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ẻ!

Join the conversation

or to participate.