Brzi kvar
- query_posts - ne koristite osim u rijetkim rubnim slučajevima
- pre_get_posts - koristite ako želite promijeniti zadani upit na stranici
- novi WP_Query - koristite za dobivanje različitih rezultata od glavnog upita
- get_posts - isto kao WP_Query, umjesto toga samo vraća rezultate u formatu polja
query_posts
Korištenje query_posts više se ne preporučuje. Postoje bolji načini da postignete ono što pokušavate postići. Pokušavate promijeniti glavni upit? Za filtriranje rezultata upotrijebite akciju pre_get_posts (vidi dolje). query_posts baca izvorni glavni upit u stranu (nakon što je već pokrenut) i stvara novi glavni upit. Zamjenjuje sve globalne varijable povezane s postovima i rezultira potpuno novim pozivom iz baze podataka. Jednostavno nema razloga da ne biste samo trebali mijenjati postojeći upit. Siguran sam da postoje neki rubni slučajevi u kojima bi ga trebao koristiti, ali ne mogu se sjetiti ni s vrha glave. Upotrijebite jednu od nižih opcija jer će one više nego vjerojatno biti prikladnije.
pre_get_posts
Ovo je filter. Ovo mijenja glavni upit za stranicu. Tako, na primjer, želimo promijeniti broj rezultata koji se vraćaju na početnu stranicu …
funkcija tj_change_home_number ($ upit) {if (is_home ()) {$ query-> set ('posts_per_page', 2); povratak; }} dodavanje prijenosa ('pre_get_posts', 'tj_change_home_number');
Ovo bi promijenilo glavni upit tako da se na početnoj stranici vraćaju samo 2 postova.
WP_Query
Glavni upit na bilo koji pozvani predložak je instanca WP_Query . Kad komunicirate s globalnim varijablama posta unutar predloška, to je rezultat WP_Query . Slučajevi upotrebe za ovo su brojni, ali kao i kod get_posts, deklarirao bih novi WP_Query za potrebe povlačenja povezanih postova, nešto u skladu s tim. Samo imajte na umu da ako pokrenete funkciju the_post () dok petljate kroz novi WP_Query, pokrenite funkciju wp_reset_postdata () nakon što završite petlje i resetirate globalne podatke posta na izvorne glavne upite.
get_posts
Upotrebom get_posts, vi nazovite novi WP_Query i vraćate te podatke u formatu polja. Obično ću koristiti get_posts kad vraćam postove za klizač na početnoj stranici ili pozivam neke povezane postove na bočnoj traci. WP_Query se jednako lako može koristiti, ali to je dobar način za primanje niza postova bez izmjene globalnih varijabli posta. Po mom mišljenju njegov je najjednostavniji i najlakši za upotrebu. Nakon vraćanja podataka nisu potrebni pozivi funkcija, već se petljaju kroz niz.
To može biti malo zbunjujuće, pa slobodno postavljajte pitanja u komentarima ispod.
Referenca:
WP_Query
pre_get_posts
query_posts
get_posts