✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

WP_Kyselyn luettavuuden parannukset (ylläpitoa varten)

3

WP_Queryn kanssa työskentely, varsinkin kun teet mukautettuja töitä tavanomaisen "hae joitain viestejä ja näytä ne mallissa" ulkopuolella, voi olla tehokasta. Tämä pätee erityisesti joihinkin edistyneisiin argumentteihin (kuten WP_Meta_Queryn käyttäminen). .

On myös mukavaa, että prosessin asettamisessa on tavallinen tapa tehdä asioita. Nimittäin:

  1. Määrittele argumentit,
  2. Luo WP_Query,
  3. Tarkista, onko viestejä,
  4. Kierrä niiden läpi,
  5. Viimeistele Ne.

Mutta jos pääset sinne, missä teet edistyneitä töitä, kuten työskennelläksesi mukautetun viestityypin kanssa kolmannen osapuolen ratkaisusta, joudut lataamaan mediaa sivulta, selvittämään, onko jotain olemassa ennen kuin teet sen kanssa mitään, se voi olla hieman monimutkaisempi työskentely, eikö?

Olen huomannut, että kuten kaiken ohjelmoinnin kohdalla, sen jakaminen paljon luettavammiksi moduuleiksi (tai funktioiksi tai osiksi tai miksi tahansa niitä kutsutaan) voi helpottaa työskentelyä.

Joten tässä on yksi tapa, jolla pyrin parantamaan WP_Queryn luettavuutta useissa viime aikoina tekemisissäni.

WP_Kyselyn luettavuuden parannukset

Ennen kuin käyt läpi mitään esimerkkiä, on syytä huomauttaa, että WP_Queryn asetuksissa on joitain asioita, joita emme voi tehdä.

Esimerkiksi, kun kysely on luotu, emme välttämättä pysty tekemään sen kanssa paljon edistyneempiä asioita (tarkoitan, että minkä tahansa yksikkötestauksen määrittäminen, joka ei vaadi WordPress-ydintä, on mahdotonta).

Nämä ovat sellaisen henkilön kasvot, joka ei voi seurata koodiasi.

Tässä on esimerkki siitä, miltä se voi näyttää, kun aloitat, ja kuinka se voidaan sitten muuttaa pienemmiksi funktioiksi, joista jokainen on tarkoituksellisempi kuin yksi pitkä menetelmä.

Esimerkki

Oletetaan, että tätä viestiä varten minun täytyy tiedustella tietokannasta kaikkia julkaistuja viestejä ja viestejä ja haluan tilata ne tunnuksella.

Seuraavaksi haluan määrittää, onko jollekin kolmannen osapuolen työkalulle määritetty metatietoja, jotka vastaavat mallia, jonka voin myöhemmin määrittää ohjelmallisesti tietylle teemalle, joka minulla on.

Ehkä koodin alkuperäinen versio saattaa näyttää tältä :

Se on paljon koodia, joka tekee melko vähän työtä yhdelle toiminnolle. Ainakin siinä esitetään kaikki, mitä tarvitsee tapahtua, eikö niin?

Ennen kuin jatkat lukemista, huomaa, että kartoitustaulukko on vain esimerkki, mutta avaimet edustavat sen yhdistämisen metaavainta, mikä auttaa meitä määrittämään _wp_page_template- arvon, kun on aika yhdistää se todellisiin WordPress-mallitiedostoihin.

Joten miten tämä voidaan hajottaa?

1 Aloita koko asia

Ensimmäinen asia, jonka haluamme tehdä, on luoda toiminto, joka saa koko asian liikkeelle. Voit tehdä tämän tietyillä tavoilla.

Näin olen valinnut sen :

Yksinkertaisesti sanottuna se käyttää muutamia aputoimintoja – jotka kaikki dokumentoidaan alla – ja määrittää sitten kaikki mallit, jotka meillä on yllä määritellyssä kartoitustaulukossa.

2 Lataa viestit ja sivut

Luonnollisesti ensimmäinen asia, jonka haluamme tehdä, on asettaa kutsumaan funktio, joka palauttaa kyselyn tuloksia käyttäen:

Tämä palauttaa kyselyn tulokset. Tällä tavalla voimme määrittää, tarvitseeko meidän tehdä lisätöitä, jotka sanomme edellisessä vaiheessa:

Jos ei, niin sitten olemme valmiit. Muuten tietysti jatkamme.

3 Hae kolmannen osapuolen mallin tunnus

Seuraavaksi idea mallien määrittämisestä – kuten yllä olevassa koodissa näkyy – näyttää riittävän yksinkertaiselta, mutta meidän on ensin tehtävä muutamia asioita:

  1. iteroida viestejä läpi,
  2. nappaa mallin kolmannen osapuolen tunnus,
  3. nappaa kolmannen osapuolen mallin nimi,
  4. määritä malli luokassa aiemmin määritetystä kartoitusvakiosta.

Toiminnon alkuperäinen iteraatio voi näyttää tältä :

Mutta kuten näet, on edelleen aputoimintoja, jotka tarvitsevat määritelmiä. Asiat, kuten mahdollisuus saada mallin tunnus, mallin nimi ja lopulta määrittää malli.

Huomaa kuitenkin, että jos jokin apufunktioista ei palauta hyödyllistä arvoa, jatkamme silmukalla. Tämä on tarpeen ellei muusta syystä kuin sen varmistamiseksi, että emme yritä kartoittaa malleja, joita ei ole olemassa (mutta mielestäni se myös helpottaa lukemista).

4 Etsi tiedosto, johon mallin tunnus liittyy

Seuraavaksi pienellä funktiolla voidaan tarkastella kolmannen osapuolen mallin tunnusta ja määrittää, voimmeko yhdistää tämän arvon tietokannassamme oleviin sivuihin .

Jos se ei onnistu, voimme palauttaa tyhjän merkkijonon ja antaa tämän tietyn kutsuneen funktion tarkistaa, kannattaako jatkaa määrittämäämme silmukkaa.

5 Tartu mallin nimeen

Olettaen, että meillä on kelvollinen viestitunnus, meidän on nyt noudettava mallin nimi aiemmin viestissä määritetystä kartoitustaulukosta:

Asia on tässä: Palautamme joko mallin nimen tai nolla-arvon. Tämä on jälleen, jotta voimme määrittää, tarvitseeko meidän jatkaa mallien määrittämistä vai ei.

6 Määritä malli

Lopuksi voimme napata kolmannen osapuolen toimittaman mallin tunnuksen ja käyttää sitä yhdistämään tiedostoon, jonka olemme sisällyttäneet työhön, kuten aiemmin viestissä on kuvattu:

Ja näin voit viime kädessä luoda paljon pienempiä, helpompi lukea ja helpompi käyttää koodia ja toimintoja, kun työskentelet hieman monimutkaisempien kyselyiden kanssa.

Ja siten luettavuuden parannuksia

Niille, jotka ovat tottuneet lukemaan pitkiä menetelmiä tai tekemään asioita tavalla, jolla useimmat verkon opetusohjelmat osoittavat, kuinka asioita tehdään WordPressissä, tämä voi näyttää turhalta koodilta.

Mutta harkitse tätä:

  1. Pidempiä menetelmiä on vaikea lukea,
  2. Niitä voi olla vaikeampi korjata,
  3. Eivätkä ne hajoa ongelmaa paremmin hallittavissa oleviin osiin.

Toki haluaisin jakaa tämän vielä useampaan luokkiin heidän vastuullaan, ja uskon, että se voidaan tehdä, mutta WP_Queryn luonteen vuoksi se vaatisi hieman enemmän työtä.

Joten olen yrittänyt löytää mahdollisimman paljon keskitietä.

Jos työskentelet WP_Queryn jopa hieman edistyneemmillä käyttötavoilla, suosittelen ainakin harkitsemaan sen jakamista pienempiin osiin.

Tämä auttaa huolehtimaan luettavuudesta, mahdollisesti kaikesta ylläpidettävyydestä ja kirjoittamaan puhtaampaa koodia yhden pitkän menetelmän sijaan, jossa on liikaa ehtoja ja riippuvainen monista muista tiedoista.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja