Tôi đã đọc @ nacin Bạn không biết Truy vấn ngày hôm qua và đã được gửi xuống một chút lỗ thỏ truy vấn. Trước ngày hôm qua, tôi đã (sử dụng sai) query_posts()
cho tất cả các nhu cầu truy vấn của mình. Bây giờ tôi khôn ngoan hơn một chút về việc sử dụng WP_Query()
, nhưng vẫn có một số vùng màu xám.
Những gì tôi nghĩ rằng tôi biết chắc chắn:
Nếu tôi thực hiện các vòng lặp bổ sung ở bất cứ đâu trên một trang trong thanh bên, ở chân trang, bất kỳ loại "bài đăng liên quan" nào, v.v ... tôi muốn sử dụng WP_Query()
. Tôi có thể sử dụng nó nhiều lần trên một trang mà không gây hại gì. (đúng?).
Những gì tôi không biết chắc chắn
- Khi nào tôi sử dụng @ nacin của
pre_get_posts
vsWP_Query()
? Tôi có nên sử dụngpre_get_posts
cho tất cả mọi thứ bây giờ? - Khi tôi muốn sửa đổi vòng lặp trong trang mẫu - giả sử tôi muốn sửa đổi trang lưu trữ phân loại - tôi có xóa
if have_posts : while have_posts : the_post
phần đó và tự viếtWP_Query()
không? Hoặc tôi có sửa đổi đầu ra bằng cách sử dụngpre_get_posts
tệp tin.php không?
tl; dr
Các quy tắc tl; dr tôi muốn rút ra từ đây là:
- Không bao giờ sử dụng
query_posts
nữa - Khi chạy nhiều truy vấn trên một trang, hãy sử dụng
WP_Query()
- Khi sửa đổi một vòng lặp, hãy làm điều này.
Cảm ơn vì sự khôn ngoan
Terry
ps: Tôi đã thấy và đọc: Khi nào bạn nên sử dụng WP_Query vs query_posts () vs get_posts ()? Mà thêm một chiều khác - get_posts
. Nhưng không đối phó với pre_get_posts
tất cả.