Przeczytałem @ nacin's Nie znasz zapytania wczoraj i wysłano mi trochę pytającej króliczej nory. Przed wczoraj (niesłusznie) korzystałem query_posts()
ze wszystkich moich potrzeb związanych z zapytaniami. Teraz jestem trochę mądrzejszy w używaniu WP_Query()
, ale nadal mam kilka szarych obszarów.
Co myślę, że wiem na pewno:
Jeśli robię dodatkowe pętle w dowolnym miejscu na stronie - na pasku bocznym, w stopce, wszelkiego rodzaju „powiązanych postach” itp. - chcę z nich korzystać WP_Query()
. Mogę używać tego wielokrotnie na jednej stronie bez szkody. (dobrze?).
Czego nie wiem na pewno
- Kiedy używam @ nacin w
pre_get_posts
wersetachWP_Query()
? Czy mampre_get_posts
teraz używać do wszystkiego? - Kiedy chcę zmodyfikować pętlę na stronie szablonu - powiedzmy, że chcę zmodyfikować stronę archiwum systematyki - czy mogę usunąć
if have_posts : while have_posts : the_post
część i napisać własnąWP_Query()
? Czy mogę zmodyfikować dane wyjściowe za pomocąpre_get_posts
mojego pliku functions.php?
tl; dr
Zasady tl; dr, które chciałbym z tego wyciągnąć, to:
- Nigdy
query_posts
więcej nie używaj - Jeśli uruchamiasz wiele zapytań na jednej stronie, użyj
WP_Query()
- Podczas modyfikowania pętli wykonaj to __________________.
Dzięki za wszelką mądrość
Terry
ps: Widziałem i czytałem: kiedy powinieneś używać WP_Query vs query_posts () vs get_posts ()? Co dodaje kolejny wymiar get_posts
. Ale w ogóle się nie zajmuje pre_get_posts
.