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

Lisää mukautettu näkymä Kaikki viestit -näyttöön

14

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:

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:

Lisää mukautettu näkymä Kaikki viestit -näyttöön

Sieltä alkuperäinen laajennustiedosto voi näyttää tältä:

Lisää mukautettu näkymä Kaikki viestit -näyttöön

Aluksi teemme seuraavaa:

  1. Nimiavaruuden asettaminen,
  2. Suodattimen lisääminen,
  3. 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:

  1. Hyväksy luokan nimi,
  2. Alusta attribuuttien muuttuja,
  3. Vertaa kyselyn merkkijonomuuttujia
  4. Selvitä, ovatko luokan nimi ja luokan tunnus samat,
  5. Ja palauta oikea arvo, jos ei.

Tältä funktioni näyttää:

Lisää mukautettu näkymä Kaikki viestit -näyttöön

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.

Lisää mukautettu näkymä Kaikki viestit -näyttöön

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:

  1. Hae kaikki object_idtietueet, joilla on tämän luokan tunnus,
  2. 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.

Lisää mukautettu näkymä Kaikki viestit -näyttöön

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ä.

Lisää mukautettu näkymä Kaikki viestit -näyttöön

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:

Lisää mukautettu näkymä Kaikki viestit -näyttöön

Tämä tekee useita asioita:

  1. Hyväksyy $viewsWordPressin vakiomatriisin,
  2. Lisää mukautetun ankkurin yllä kuvatulla tavalla,
  3. Työntää sen $viewsjoukkoon,
  4. 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.

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