Lisää mukautettu näkymä Kaikki viestit -näyttöön
TL;DR: Aion työstää sarjaa, jossa tarkastellaan, kuinka saavuttaa hyödyllinen tehtävä taksonomioiden, todennäköisten luokkien avulla ja sitten muuntaa se oliopohjaiseksi laajennukseksi, joka toimii yleisesti taksonomioiden apuohjelmalaajennuksena. .
OOP-viestien lyhyt historia
Jokin aika sitten tein pitkän sarjan olio-ohjelmoinnin periaatteista (ja yritin jakaa kunnollisen summan siitä, kuinka saavuttaa tiettyjä asioita WordPressin kontekstissa).
Olen myös kirjoittanut joukon artikkeleita koko paradigmasta vuosien varrella niille, jotka ovat kiinnostuneita tutustumaan joihinkin näistä artikkeleista.
Ja olisin välinpitämätön, jos en kertoisi, että myös hyvä ystäväni on kirjaimellisesti kirjoittanut kirjan aiheesta.
Ja siksi, kun olen pohtinut erilaisia aiheita, joista kirjoitan (pitäen tosin suunnitellut pidemmän vapaa-ajan), ajattelin, että voisi olla syytä puhua käytännön asioista, joita voimme tehdä tavallisilla API:illa ja koukuilla ja sitten muuntaa sen eräänlaiseksi apuohjelmalaajennukseksi.
Lisää mukautettu näkymä
Tässä esittelyssä jakamassa työssä käytän seuraavaa:
https://sandbox.localPaikallinen vauhtipyörällä verkkotunnuksella- TablePlus tietokantakäyttöön
- Visual Studio Code IDE:näni
- Ja WDS PHP -koodausstandardit kaikille PHP:lle, jonka aiot nähdä.
Jos haluat seurata, mitä minulla on meneillään, käytä kaikkia yllä olevia (en tiedä jaanko kaikkea, mutta jos näet kuvakaappauksia ja koodinpätkiä, tiedät mistä se tulee ).
Tässä on lyhyt poikkeama viewsWordPressistä (ja se ei ole kuin Views MVC :n tai MVVM :n merkityksessä ).
WordPress-näkymät
Tätä kirjoitettaessa ei näytä olevan selkeää, tiivistä lausuntoa siitä, mikä WordPress-näkymä on. Käytettävissä olevan koukun suhteen meillä on views_edit-post.
Joten jos otamme sen tietyn koukun ja mitä se tekee, ehkä jokin tällainen riittäisi:
WordPress-näkymä on sivu, jolla voimme tarkastella kaikkia viestejä, jotka täyttävät tietyt kriteerit.
Tämä kriteeri sisältää yleensä esimerkiksi seuraavat viestit:
- Julkaistu,
- Luonnokset,
- Roskakori,
- Aikataulutettu,
- Ja niin edelleen.
Mutta entä jos sinulla on toinen viesti, jolla on muita ehtoja, joiden mukaan haluat suodattaa? Toki voit suodattaa näytöllä näkyvän pudotusvalikon mukaan (esimerkiksi luokan mukaan), ja se on hyvä, mutta entä jos haluat käyttää mukautettuja ehtoja [mihin tahansa syystä]?
Entä esimerkiksi, jos et halua klikata tiettyä elementtiä, sitten suodattaa ja tarkastella viestejä? Sen sijaan haluat nähdä linkin kriteereihin, kriteerien mukaisten viestien lukumäärän ja sitten suodattaa niiden mukaan?
Tässä tulee esiin kyky muokata näkymiä.
Ja tätä viestiä varten aion kattaa kuinka esitellä uusi ankkuri sivun yläosassa, joka luettelee tietyn luokan viestien määrän.
Mikä on näkemyksemme?
Tässä tapauksessa käytämme Luokittelematonta, koska oletusasennuksessa on jo saatavilla luokittelematon viesti ja voimme helposti muokata tiettyjä muutoksia tämän ympärille.
Tätä varten kirjoitamme mu-pluginniin, että se sijoitetaan mu-pluginshakemistoon. Jos asennuksessasi ei ole sellaista, lisää hakemisto ja lisää sitten add-custom-view.phphakemistoon:
Sieltä alkuperäinen laajennustiedosto voi näyttää tältä:
Aluksi teemme seuraavaa:
- Nimiavaruuden asettaminen,
- Suodattimen lisääminen,
- Määritä sitten funktio, joka hyväksyy oletusjoukon
$viewsja palauttaa taulukon,$viewskun niitä on muutettu.
Joten mitä meidän pitää tehdä täältä?
Vaatimussarja
Saavuttaaksemme sen, mitä haluamme, meidän on kyettävä:
- Määritä luokan nimi,
- Lisää linkki luokkaan ja luokkaan kuuluvien viestien määrä katseluluetteloon,
- Mahdollisuus määrittää, olemmeko luokkasivulla luettelon oikean tyylin määrittämiseksi
- Mahdollisuus suodattaa viestityypin mukaan,
- Ja tapa testata se.
Kaikki yllä mainitut käsitellään koodissa myöhemmin artikkelissa, mutta viides vaihe edellyttää, että luot luokan manuaalisesti, jotta voimme helposti testata, toimiiko muu koodi.
Joten mene eteenpäin ja tee se. Kategorialle voidaan antaa mikä tahansa nimi (käytin malliluokkaa). Kun olet valmis, kirjoitetaan koodi muusta laajennuksesta.
Määrittele näkemyksemme
Ensin aion jakaa toiminnon, joka määrittää, millä sivulla olemme, ja tekee jommankumman kahdesta asiasta:
- Jos olemme sivulla, jolla on sama kyselymerkkijonoparametri luokkamme tunnukselle, annan luokan nimen. muussa tapauksessa palautamme tyhjän merkkijonon.
Tätä varten toiminnon tulee:
- Hyväksy luokan nimi,
- Alusta attribuuttien muuttuja,
- Vertaa kyselyn merkkijonomuuttujia
- Selvitä, ovatko luokan nimi ja luokan tunnus samat,
- Ja palauta oikea arvo, jos ei.
Tältä funktioni näyttää:
Tätä voisi myös yksinkertaistaa kolmiosaisella operaattorilla, mutta jotta se pysyisi mahdollisimman luettavana, jätän sen toistaiseksi ennalleen.
Määritä luokan nimi
Tämä ominaisuus on itse asiassa todella helppo, ja vaikka olemme tottuneet ottamaan käyttäjiä vastaan suuressa osassa toimintaamme, aiomme koodata tämän arvon.
Tämän tekemiseksi aiomme yksinkertaisesti tallentaa tämän muuttujaan, joka välitetään koko koodin loppuun.
Näit muuttujan aiemmin siirretyn yllä olevaan funktioon ja näet sitä myös lähdekoodin lopullisessa versiossa.
Hae luokkaa sisältävien viestien tulokset
Tätä varten meidän on tehtävä kaksi asiaa:
- Hae kaikki
object_idtietueet, joilla on tämän luokan tunnus, - Suodata sisältö, joka ei sovellu näille viesteille.
Haluan mainita pari asiaa: Ensinnäkin käytämme get_cat_IDWordPressin tarjoamaa toimintoa. Tämä hakee luokan tunnuksen saapuvan nimen perusteella.
Toiseksi, käytän kahta funktiota – joista toinen on silmukka – elementin post-tilan tutkimiseen. Tämä ei ole tehokkain tapa tehdä tämä. Sen sijaan voisimme käyttää tyylikkäämpää kyselyä vain viestien hakemiseen; Tämän ensimmäisen iteroinnin on kuitenkin tarkoitus näyttää, kuinka tämä tehdään alusta alkaen, mutta myös yleisölle, joka ei ehkä ole yhtä mukava muiden koodin kirjoittamisen osien kanssa.
Näin saamme kaikki WordPressin tietueet, jotka on merkitty luokittelemattomiksi.
Ja sen myötä otamme tulokset ja lähetämme ne tähän toimintoon, joka palauttaa elementtien määrän, jotka ovat vain viestejä.
Tämän ansiosta meillä on suurin osa siitä, mitä tarvitsemme aloittaaksemme näkymäankkurin kokoamisen.
Luo näkymäankkuri
Nyt kun meillä on kaikki näkymäankkurin luomiseen tarvittavat toiminnot, meidän on yhdistettävä ne -kohdan tilalle sprintfturvallista merkkijonomuotoilua varten.
Tavoitteena on luoda ankkuri, joka:
- Näyttää siltä, että muut ankkurit,
- Näyttää viestien määrän,
- On lihavoitu aina kun katsot mainittuja viestejä.
Tätä varten meidän on rakennettava linkki ja lisättävä oikeat kyselymerkkijonoargumentit. Tämä tarkoittaa, että luomme linkin osoitteeseen edit.php, jossa on argumentteja:
- luokan tunnus,
- postin tyyppi,
- ja kaikki viestit, joissa on tämä luokka.
Seuraavaksi meidän on sisällytettävä:
- kaikki linkin tyyliin vaikuttavat attribuutit,
- luokan nimi,
- ja vain viestin sisältö
post_type.
Voimme tehdä tämän käyttämällä seuraavaa toimintoa:
Tämä tekee useita asioita:
- Hyväksyy
$viewsWordPressin vakiomatriisin, - Lisää mukautetun ankkurin yllä kuvatulla tavalla,
- Työntää sen
$viewsjoukkoon, - Palauttaa sen WordPressiin renderöitäväksi.
Ja siinä se!
Testaa sitä
Testaaksesi tämän lataamalla selaimesi ja sinun pitäisi nähdä uusi Uncategorized linkki muiden ankkurien vieressä, kuten Kaikki, Julkaistu, Minun, Roskakori, Ajoitettu jne.
Muuta sen jälkeen viestiluokkaa ja poista Luokittelematon. Vieraile sitten uudelleen tai päivitä Kaikki viestit -sivu, niin näet, että linkki on aktiivinen ja tyylitelty riippuen siitä, miten katselet sitä, ja se sisältää luokiteltujen viestien määrän. sellaisenaan myös.
Nyt GitHubiin
Olen ladannut tämän laajennuksen ensimmäisen iteraation GitHubiin, jotta voit ladata sen ja sijoittaa sen mu-pluginshakemistoosi testausta varten.
Tulevissa viesteissä haluaisin aloittaa muuttamalla tämän oliosuuntautuneeksi paradigmaksi, joten nämä ovat muutoksia, jotka ovat tulossa laajennukseen ja tulevien viestien sisältöön.






