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

WordPress-widgetit: Refaktorointi, osa 7

8

Muutamassa viimeisessä viestissä olemme tehneet paljon työtä saattaaksemme koodin uudelleenmuodostukseen, jota käsitellään tässä artikkelissa.

Erityisesti olemme käsitelleet:

Kaikki nämä vaikuttavat siihen, mitä aiomme tehdä tänään.

WordPress Widget Boilerplate: Refactoring, osa 7

Ne, jotka ovat perehtyneet WordPress Widgets -sovellusliittymään, tietävät todennäköisesti, että se ei ole juurikaan muuttunut viime vuosina.

Lisäksi se koostuu oikeastaan ​​vain neljästä funktiosta (joista yksi on rakentaja):

  1. Rakentaja on vastuussa widgetin useiden ominaisuuksien asettamisesta, yleisimmin sen nimestä ja kuvauksesta.
  2. Widget-toiminto vastaa widgetin sisällön renderöimisestä.
  3. Lomaketoiminto vastaa lomakkeen näyttämisestä WordPressin hallinta-alueella, kun työskentelet widgetin kanssa.
  4. Päivitystoiminto on vastuussa tietokantaan tallennettujen valintojen päivittämisestä (tai alustuksen ja niiden valintojen tallentamisesta, joita ei ehkä vielä ole tietokannassa).

Mukava asia on, että tämä erityinen lähestymistapa saavutetaan perimällä WP_Widget- luokan toiminnallisuus.

Ongelmana on kuitenkin se, että yhdellä luokalla on paljon työtä.

Sen sijaan meidän pitäisi erottaa jokainen toiminto omaan toiminta-alueeseensa.

Kuten missä tahansa ohjelmoinnissa, on olemassa tapoja, joilla jotkut asiat ovat selkeitä, kuinka ne voidaan tehdä, ja sitten on joitain asioita, jotka voidaan tehdä useilla tavoilla.

Aion esittää sen, miten suhtaudun siihen tällä hetkellä. Tämä voi muuttua tulevaisuudessa tai ehkä ei, ja muut voivat suhtautua asiaan eri tavalla.

Siitä huolimatta toteutus tulee olemaan paljon oliokeskeisempi ja antaa jokaiselle luokalle omat vastuunsa.

Ensimmäinen kysymys kuitenkin on, kuinka jaetaan luokka, jossa on neljä funktiota ja joka perii yläluokan?

Bootstrapin päivitys

Ensinnäkin, meidän on säädettävä joitain asioita laajennuksen käynnistyspalkissa. Nimittäin meidän on tehtävä seuraava:

  1. luoda rekisterin ja asettaa sen saataville projektin kautta,
  2. päivitä Plugin-luokka niin, että se hyväksyy rekisterin ja lataa tilaajat,
  3. tarkista bootstrap

Tässä on katsaus kaikkiin kolmeen yllä olevaan.

1 Luo rekisteri

Koska olemme käsitelleet tätä jo aiemmin sarjassa, pitäisi olla selvää, kuinka tämä tehdään.

Katso ensin seuraava koodi :

Huomaa seuraavaksi, että luomme rekisterin (puhumme sen nimiavaruudesta hetkellisesti) ja liitämme sen sitten mukautettuun suodattimeen, jonka avulla voimme käyttää sitä koko laajennuksen aikana milloin tahansa.

2 Päivitä Plugin Class

Seuraavaksi meidän on päivitettävä ydinlaajennusluokka (joka sijaitsee src – hakemistossa) niin, että se viittaa rekisteriin ja lataa kaikki rekisteröidyt tilaajat :

Huomaa kuitenkin, että emme ole vielä määrittäneet yhtään tilaajaa. Aloitimme tämän aiemmin sarjassa ja nyt on aika palata siihen, mutta teemme sen myöhemmin.

Meidän on kuitenkin lisättävä funktio – vaikka se olisikin väliaikainen – jotta voimme lisätä luokkia, jotka eivät ole eksplisiittisiä tapahtuman tilaajia:

Tätä muokataan myöhemmin, koska muutamme ydinluokat tilaajiksi myöhemmin.

3 Tarkista Bootstrap

Ennen kuin jatkat, mielestäni on tärkeää tarkistaa bootstrap. Vaikka otsikkosi ja dokumentaatiosi voivat vaihdella, on tärkeää huomata, että teemme seuraavat asiat:

  • bootstrapin nimiväli,
  • estää pääsyn tiedostoon,
  • automaattilataajalle soittaminen,
  • rekisterin perustaminen,
  • ja käynnistää plugin.

Se kuulostaa paljon, mutta koodi on melko lyhyt :

Tässä vaiheessa on kuitenkin aika tarkastella, millaista on jakaa aliluokka tavallisesta Widgets API :sta johonkin, joka sopii käytettävään koodimalliin.

Lapsiluokan jakaminen

Tämä osa kattaa todennäköisesti muutaman postauksen, koska työtä on vähän, mutta aloitamme luomalla oman widget-luokkamme, joka perii peruswidget-luokan.

Tee ensin API -hakemisto src – hakemistoon ja lisää tiedosto nimeltä Widget.php. Tässä ovat widgetin perusteet. Käsittelemme hallinnollisia ja julkisia tyylisivuja ja JavaScript-tiedostoja seuraavassa viestissä.

Tässä vaiheessa tiedoston perusasioiden pitäisi näyttää tältä :

Huomaa, että se vaatii yhden argumentin. Olen käyttänyt widgetin nimi, mutta voit käyttää mitä tahansa, kunhan se edustaa widgettiäsi.

Tämä osoittaa, että luokkaa instantoidaan ja ladataan oikein, kun laajennus aktivoidaan. Jos et näe tätä, jokin on vialla (jotka tarkistamme hetken).

Seuraavaksi on tärkeää varmistaa, että tämä luokka on lisätty rekisteriin. Joten lisää seuraavat koodirivit bootstrapiin:

Ja nyt, kun aktivoit laajennuksen, sinun pitäisi nähdä seuraava:

WordPress-widgetit: Refaktorointi, osa 7

Jos ei, tarkista koodi kehityshaarassa varmistaaksesi, että sinulla on kaikki tässä viestissä kuvattu.

Toteuttavat tilaajat

Tulevissa viesteissä aiomme tarkastella, kuinka voimme ottaa tilaajat käyttöön sivuston julkiselle puolelle (eli missä widgetin sisältö näytetään). Ja teemme samoin sivuston hallintoalueella.

Lopuksi käännämme huomiomme koodiin, joka vastaa tietojen suojaamisesta ja sarjoittamisesta (lue: widgetin päivittämisestä), ja sitten katsomme, miltä päivitetyn kattilalevyn lopullinen versio näyttää.

Tässä viestissä käyttämämme ensisijainen strategia on kuitenkin aliluokan jakaminen, jotta sitä voidaan edelleen käyttää muiden luokkien kanssa käyttämällä rajapintoja ja perusluokkia, jotka on jo määritetty koodikannassa.

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