✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Juhend: WordPressi globaalse päringu muutmine

13

Mõnel juhul peate võib-olla muutma üldist postituspäringut, mida WordPress täidab igal teie külastataval lehel – nii administraatoril kui ka kasutajaliideses. Selles juhendis vaatleme, millist konksu kasutada ja kuidas päringu argumente oma maitse järgi muuta.

Millist konksu kasutada

Kõigepealt pead teadma, millisele konksule oma kood lisada. Vajame konksu, mis toimub kohe pärast seda, kui WordPress on kõik argumendid seadistanud, kuid enne tegeliku päringu käivitamist. Selleks kasutame toimingut pre_get_posts.

Selles konksus saate ühe parameetri; mis on WP_Queryobjekt, millega WordPress hiljem päringut käivitab. Teete objektis muudatused, kuid te ei pea seda tagastama, kuna WordPress käivitab päringu koos muudetud objektiga.

add_action('pre_get_posts', function($query) { // Add your code here });

Päringu muutmine eeldab suure tõenäosusega mõne tingimusmärgendi kasutamist, et määrata need juhtumid, mida soovite seda muuta. Näiteks võite soovida sihtida päringut ainult otsingutulemustes või kategooriavaadetes.

Tingimuslikud sildid

WordPressil on hunnik tingimuslikke silte, mille abil saate määrata, millistel juhtudel soovite koodi lisada. Tingimuslik silt on lihtsalt funktsioon, mis tagastab olenevalt WordPressi olekust tõene või väär. Levinud tingimusmärgendite näited on is_admin()mõeldud selleks, et kontrollida, kas oleme praegu administraatoris või kasutajaliideses, is_singular()kas oleme kasutajaliideses ühel postitusel või lehel ja is_search()kui oleme otsingutulemuste lehel.

Pidage meeles, et konks pre_get_poststöötab nii administraatori kui ka kasutajaliidese jaoks. Kui soovite mõjutada ainult globaalset päringut kasutajaliideses, peate oma koodi mähkima tingimusmärgendi if-kontrolli sisse is_admin().

Märkus tingimuslike märgendite kohtapre_get_posts

Tingimuslikud sildid on suurepärased ja kõik, kuid nende sees kasutamisel tuleb meeles pidada mõnda asja pre_get_posts.

Esiteks peate tutvuma sildiga is_main_query(). Toimingut pre_get_postskäitatakse tegelikult iga lehe laadimise korral mitu korda. Näiteks pre_get_postskäivitatakse iga menüü (sh vidinate) loomisel. Tegeliku globaalse päringu, nt kategooriaarhiivi või otsingutulemuste postituste muutmiseks peate sihtima "põhipäringut", kasutades is_main_query().

Teiseks peate olema teadlik juhtudest, kus peate funktsiooni "iseseisvalt" kutsumise asemel kontrollima tingimuslikke silte antud objektil. Tavaliselt, kui kasutate tingimuslikke silte, kirjutaksite selle järgmiselt:

if (is_main_query()) { // Do stuff }

Kui aga kasutate pre_get_posts, on mõned tingimuslikud sildid, mida peate objektile rakendama. Näiteks:

Peaksite alati kontrollima is_main_query()punktis toodud objekti pre_get_posts. Lisateabe saamiseks lugege pre_get_posts dokumentatsiooni.

See on näide kontrollimise kohta, kas me pole administraatoris ja kas oleme peamise postituse päringus:

Argumentide muutmine või lisamine

Kuna me töötame WP_Queryobjektiga, võite vaadata WP_Query dokumentatsiooni, kuidas luua oma argumente postituste päringu kohandamiseks. Pidage meeles, et argumendid on juba täidetud. Sel juhul peate olemasolevad väärtused lisama või muutma. Või eemaldage need, mida soovite eemaldada.

Argumentide määramiseks kasutate set()funktsiooni WP_Queryobjektil. Meetod aktsepteerib kahte argumenti, argumendivõtit ja teiseks väärtust. Näiteks posts_per_pageargumendi seadistamine toimub järgmiselt:

Juhtudel, kui soovite lisada või muuta juba olemasolevat argumenti, teete seda tavaliselt nii, et esmalt salvestate olemasoleva argumendi muutujas. Selleks saate meetodit get()kasutada. Seejärel muudate muutujat, lisades või ühendades massiive või muud. Ja lõpuks set()asendate muudetud muutuja tagasi päringuobjektiga. Soovitan kasutada var_dump()objektil, et näha, mida see sisaldab, ja see on ka hea viis kontrollida, kas tingimussildid on õiged.

Siin on kiire näide kasutamisest get()(lihtsalt kontrollige, kas see on tühi) ja kui jah, lisage oma argumendid nupuga set().

Märkus tax_query kohta

WP_Tax_QueryWordPressil on taksonoomia () osa käsitlemiseks eraldi alamklassid WP_Query. Kui teil on vaja teha keerukamaid taksonoomiapäringu muudatusi, võib pre_get_poststoiming olla liiga vara. Mõned väärtused võivad olla tühjad, kuna need täidetakse hiljem. Sel juhul võiks olla parem kasutada parse_tax_querytoimingut pre_get_posts. Lugege selle konksu dokumentatsiooni, et näha, kas see on teie jaoks.

Järeldus

Argumendid, mida lisate või muudate, sõltuvad täielikult sellest, mida soovite teha, kuid teil peaks nüüd olema ülevaade strateegiatest, mille abil globaalse päringuga hakkama saada. Kui teil on vaja saada ülevaade WP_Queryobjektist ja selle argumentide kasutamisest, võib minu postitus postituste päringute kohta huvi pakkuda.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem