Anonim

Rýchle rozdelenie

  • query_posts - nepoužívajte s výnimkou zriedkavých prípadov
  • pre_get_posts - použite, ak chcete zmeniť predvolený dopyt na stránke
  • nový WP_Query - slúži na získanie rôznych výsledkov z hlavného dotazu
  • get_posts - rovnako ako WP_Query, namiesto toho iba vracia výsledky vo formáte poľa
  • query_posts

    Použitie query_posts sa už neodporúča. Existujú lepšie spôsoby, ako dosiahnuť to, čo sa snažíte dosiahnuť. Pokúšate sa zmeniť hlavný dotaz? Na filtrovanie výsledkov použite akciu pre_get_posts (pozri nižšie). query_posts vyvolá pôvodný hlavný dotaz na stranu (po tom, čo už bol spustený) a vytvorí nový hlavný dotaz. Nahrádza všetky globálne premenné súvisiace s poštou a má za následok úplne nové volanie do databázy. Neexistuje jednoducho žiadny dôvod, prečo by ste nemali iba meniť existujúci dopyt. Som si istý, že existujú prípady, keď by sa mal použiť, ale neviem si predstaviť nič z hlavy. Použite jednu z nižšie uvedených možností, pretože budú viac vhodnejšie.

    pre_get_posts

    Toto je filter. Týmto sa upraví hlavný dopyt na stránku. Napríklad, chceme zmeniť počet výsledkov, ktoré sa vrátia na domovskú stránku …

funkcia tj_change_home_number ($ query) {if (is_home ()) {$ query-> set ('posts_per_page', 2); return; }} add_action ('pre_get_posts', 'tj_change_home_number');

Tým by sa zmenil hlavný dopyt tak, aby sa na domovskú stránku vrátili iba 2 príspevky.

WP_Query

Hlavným dotazom na ľubovoľnú šablónu, ktorá sa volá, je inštancia WP_Query . Ak interagujete s globálnymi poštovými premennými v rámci šablóny, je to výsledok WP_Query . Prípady použitia na tento účel sú početné, ale rovnako ako v prípade get_posts by som vyhlásil nový WP_Query za účelom sťahovania súvisiacich príspevkov, niečo v tomto zmysle. Nezabúdajte, že ak spustíte funkciu the_post () pri opakovaní cyklu cez nové WP_Query, po dokončení opakovania spustite funkciu wp_reset_postdata (), aby ste obnovili pôvodné globálne údaje po pôvodnom hlavnom dopyte.

get_posts

Pomocou get_posts v skutočnosti voláte nový WP_Query a tieto informácie sa vracajú vo formáte poľa. Typy get_posts sa zvyčajne použijú, keď vraciam príspevky pre posúvač na domovskej stránke alebo zavolám niektoré súvisiace príspevky na bočnom paneli. WP_Query sa dá rovnako ľahko použiť, ale je to dobrý spôsob, ako získať celý rad príspevkov bez úpravy globálnych post premenných. Podľa môjho názoru je to najjednoduchšie a najjednoduchšie použiteľné. Po vrátení vašich údajov nie sú potrebné žiadne volania funkcií, len opakovanie cez pole.

To môže byť trochu mätúce, takže neváhajte klásť otázky v komentároch nižšie.

referencie:
WP_Query
pre_get_posts
query_posts
get_posts

Wp_query vs query_posts vs get_posts vs pre_get_posts