Anonim

Greitas suskirstymas

  • query_posts - nenaudokite, išskyrus retus kraštinius atvejus
  • pre_get_posts - naudokite, jei norite pakeisti numatytąją puslapio užklausą
  • naujas WP_Query - naudoti norint gauti skirtingus rezultatus iš pagrindinės užklausos
  • get_posts - tas pats, kas WP_Query, tiesiog grąžina rezultatus masyvo formatu
  • užklausos_postai

    Daugiau nerekomenduojama naudoti užklausos_postų. Yra geresnių būdų įgyvendinti tai, ką bandote įgyvendinti. Bandote pakeisti pagrindinę užklausą? Norėdami filtruoti rezultatus, naudokite veiksmą pre_get_posts (žr. Žemiau). „query_posts“ meta originalią pagrindinę užklausą į šoną (po to, kai ji jau buvo paleista), ir sukuria naują pagrindinę užklausą. Tai pakeičia visus su globaliais kintamaisiais susijusius kintamuosius ir sukuria visiškai naują duomenų bazės skambutį. Tiesiog nėra jokios priežasties, kodėl neturėtumėte tiesiog pakeisti esamos užklausos. Aš tikiu, kad yra keletas kraštinių atvejų, kai tai turėtų būti naudojama, bet aš negalvoju apie jokius galvą. Naudokite vieną iš žemiau pateiktų variantų, nes jie daugiau nei tikėtina bus geriau tinkami.

    pre_get_posts

    Tai yra filtras. Tai modifikuoja pagrindinę puslapio užklausą. Pavyzdžiui, mes norime pakeisti rezultatų, kurie grąžinami pagrindiniame puslapyje, skaičių …

funkcija tj_change_home_number ($ query) {if (is_home ()) {$ query-> set ('posts_per_page', 2); grįžti; }} add_action ('pre_get_posts', 'tj_change_home_number');

Tai pakeistų pagrindinę užklausą, kad pagrindiniame puslapyje būtų pateikiami tik 2 įrašai.

WP_Query

Pagrindinė bet kurio vadinamo šablono užklausa yra WP_Query pavyzdys . Kai sąveikaujate su globaliais pašto kintamaisiais šablone, tai yra „ WP_Query “ rezultatas. Panaudojimo atvejų yra daugybė, tačiau, kaip ir „get_posts“, paskelbčiau naują „ WP_Query“, kad būtų galima traukti susijusius pranešimus. Tiesiog atminkite, kad jei vykdote funkciją „ The_post ()“ ir ieškote naujos WP_Query, paleiskite funkciją wp_reset_postdata (), kai baigsite ciklą, kad atkurtumėte visuotinius pranešimų duomenis į pradinę pagrindinę užklausą.

gauti_postus

Naudodamiesi „get_posts“, jūs iš tikrųjų skambinate naujai „ WP_Query“ ir gaunate šią informaciją masyvo formatu. Paprastai naudoju „get_posts“, kai grąžinu pagrindinio puslapio slankiklio įrašus arba šaukiu kai kuriuos susijusius pranešimus šoninėje juostoje. „WP_Query“ gali būti lygiai taip pat lengvai naudojamas, tačiau tai geras būdas gauti pranešimų masyvą nekeičiant bendrųjų pranešimų kintamųjų. Mano nuomone, tai paprasčiausia ir lengviausia naudoti. Grąžinus duomenis nereikia jokių funkcijų skambučių, o tik reikia ieškoti masyvo.

Tai gali šiek tiek painioti, todėl nedvejodami klauskite komentarų žemiau.

Nuoroda:
WP_Query
pre_get_posts
užklausos_postai
gauti_postus

Wp_query vs query_posts vs get_posts vs pre_get_posts