Lisage kohandatud vaade kõigi postituste ekraanile
TL;DR: Töötan sarja kallal, mis vaatleb, kuidas saavutada taksonoomiate ja tõenäoliste kategooriatega kasulik ülesanne, seejärel muuta see ümber objektorienteeritud pistikprogrammiks, mis toimib üldiselt taksonoomiate utiliidi pluginana. .
OOP-postituste lühiajalugu
Mõni aeg tagasi tegin pika seeria objektorienteeritud programmeerimise põhimõtetest (ja püüdsin jagada korralikku summat, kuidas WordPressi kontekstis teatud asju saavutada).
Samuti olen aastate jooksul kirjutanud terve paradigma kohta hulga artikleid neile, kes on huvitatud mõne neist artiklitest.
Ja ma oleksin hooletu, kui ma ei räägiks, et ka mu hea sõber on sellel teemal sõna otseses mõttes raamatu kirjutanud .
Ja seetõttu, kui ma olen mõelnud erinevatele teemadele, millest kirjutada (pärast ilmselt pikemat puhkust kui plaanisin), arvasin, et võib-olla tasub rääkida praktilistest asjadest, mida saame teha tavaliste API-de ja konksudega ja siis muutke see teatud tüüpi utiliidi pistikprogrammiks.
Lisa kohandatud vaade
Selles demos jagatava töö jaoks kasutan järgmist:
https://sandbox.localHoorattaga kohalik domeeniga- TablePlus juurdepääsuks andmebaasile
- Visual Studio kood minu IDE-na
- Ja WDS PHP kodeerimisstandardid kogu PHP jaoks, mida näete.
Kui soovite jälgida, mis mul toimub, kasutage kõike ülaltoodut (ma ei tea, kas ma jagan kõike, aga kui näete ekraanipilte ja koodilõike, siis teate, kust see pärit on ).
Sellega seoses on siin lühike kõrvalepõik viewsWordPressi kohta (ja see pole nagu Views MVC või MVVM tähenduses ).
WordPressi vaated
Selle kirjutamise ajal ei tundunud olevat selget ja kokkuvõtlikku väidet selle kohta, mis on WordPressi vaade. Saadaoleva konksu osas on meil views_edit-post.
Nii et kui me võtame selle konkreetse konksu ja selle, mida see teeb, siis võib-olla piisaks sellisest:
WordPressi vaade on leht, kus saame vaadata kõiki postitusi, mis vastavad teatud kriteeriumidele.
See kriteerium hõlmab tavaliselt selliseid postitusi nagu:
- Avaldatud,
- Mustandid,
- prügikast,
- Plaanitud,
- Ja nii edasi.
Aga mis siis, kui teil on mõni muu postitus, millel on mõni muu kriteerium, mille järgi soovite filtreerida? Muidugi saate filtreerida ekraanil oleva rippmenüü alusel (näiteks kategooriate järgi) ja see on hea, aga mis siis, kui soovite kasutada kohandatud kriteeriume [mis tahes põhjusel]?
Näiteks kui te ei soovi, et peaksite klõpsama teatud elemendil, seejärel filtreerima ja seejärel postitusi vaatama? Selle asemel soovite näha linki kriteeriumidele, kriteeriumidele vastavate postituste arvu ja seejärel nende järgi filtreerida?
Siin tuleb mängu vaadete redigeerimise võimalus.
Ja selle postituse jaoks käsitlen seda, kuidas tutvustada lehe ülaosas uut ankrut, mis loetleb kindlaksmääratud kategooria postituste arvu.
Mis on meie vaade?
Sel juhul kasutame funktsiooni Uncategorized, kuna vaikeinstallatsioonis on juba saadaval kategoriseerimata postitus ja me saame selle ümber hõlpsalt teatud muudatusi muuta.
Selleks kirjutame, mu-pluginnii et see paigutatakse mu-pluginskataloogi. Kui teie installil seda pole, lisage kataloog ja seejärel lisage add-custom-view.phpkataloogi:
Sealt edasi võib esialgne pistikprogrammi fail välja näha umbes selline:
Esialgu teeme järgmist:
- Nimeruumi määramine,
- Filtri lisamine,
- Seejärel seadistage funktsioon, mis aktsepteerib vaikekomplekti
$viewsja tagastab massiivi$viewspärast nende muutmist.
Mida me siis siit edasi tegema peame?
Nõuete kogum
Et saavutada seda, mida tahame, peame suutma:
- Määrake kategooria nimi,
- Lisage vaadete loendisse link kategooriale ja selle kategooria postituste arv,
- Võimalus teha kindlaks, kas oleme kategoorialehel, et loendit õigesti kujundada
- Võimalus filtreerida postituse tüübi järgi,
- Ja viis selle testimiseks.
Kõike ülaltoodut käsitletakse artiklis hiljem koodis, kuid viies samm nõuab kategooria käsitsi loomist, et saaksime hõlpsalt testida, kas ülejäänud kood töötab.
Nii et mine edasi ja tee seda. Kategooriale võib anda ükskõik millise nime (kasutasin näidiskategooriat). Kui see on tehtud, kirjutame ülejäänud pistikprogrammist koodi.
Määrake meie vaade
Esiteks jagan funktsiooni, mis määrab, millisel lehel me oleme, ja teeb ühte kahest asjast.
- Kui oleme lehel, millel on meie kategooria ID jaoks sama päringustringi parameeter, annan ma klassi nime; vastasel juhul tagastame tühja stringi.
Selleks peaks funktsioon:
- Nõustuge kategooria nimega,
- Initsialiseerige atribuutide jaoks muutuja,
- Võrrelge päringustringi muutujaid
- Tehke kindlaks, kas kategooria nimi ja kategooria ID on samad,
- Ja tagastage õige väärtus, kui mitte.
Minu funktsioon näeb välja selline:
Seda saaks lihtsustada ka kolmeosalise operaatoriga, kuid et see oleks võimalikult loetav, jätan selle praegu nii.
Määrake kategooria nimi
See konkreetne funktsioon on tegelikult väga lihtne ja kuigi oleme harjunud võtma kasutajate panuse suures osas oma tegemistest, hakkame seda väärtust kõvasti kodeerima.
Selleks salvestame selle lihtsalt muutujasse, mis edastatakse kogu ülejäänud koodis.
Nägite, et muutuja edastati eelnevalt ülaltoodud funktsiooni ja näete seda ka lähtekoodi lõplikus versioonis.
Tooge postituste tulemused kategooriaga
Selleks peame tegema kahte asja:
- Tooge alla kõik
object_idkirjed, millel on selle kategooria ID, - Filtreerige sisu, mis pole nende postituste jaoks mõeldud.
Siin on paar asja, mida tahan mainida. Esiteks kasutame get_cat_IDWordPressi pakutavat funktsiooni. See hangib sissetuleva nime alusel kategooria ID.
Teiseks kasutan elemendi postitamise oleku uurimiseks kahte funktsiooni – millest üks on silmus. See ei ole kõige tõhusam viis seda teha. Selle asemel võiksime kasutada elegantsemat päringut ainult postituste toomiseks; selle esimene iteratsioon on aga mõeldud näitama, kuidas seda mitte ainult maast madalast teha, vaid ka publikule, kes ei pruugi olla koodi kirjutamise muude aspektidega nii rahul.
Sellega saame kõik WordPressi kirjed, mis on märgitud kategoriseerimata, järgmiselt.
Ja sellega võtame tulemused ja saadame need sellesse funktsiooni, mis tagastab elementide arvu, mis on ainult postitused.
Sellega on meil suurem osa sellest, mida vajame oma vaateankru kokkupanemiseks.
Loo vaateankur
Nüüd, kui meil on olemas kõik vaateankru loomiseks vajalikud funktsioonid, peame need sprintfturvaliseks stringivorminguks kokku panema.
Eesmärk on luua ankur, mis:
- Paistab, et ülejäänud ankrud,
- Näitab postituste arvu,
- See on paksus kirjas, kui vaatate nimetatud postitusi.
Selleks peame looma lingi ja lisama õiged päringustringi argumendid. See tähendab, et loome lingi aadressile, mis edit.phpsisaldab argumente:
- kategooria ID,
- postituse tüüp,
- ja kõik postitused, millel on see kategooria.
Järgmiseks peame lisama:
- mis tahes atribuudid lingi kujundamiseks,
- kategooria nimi,
- ja lihtsalt postituse sisu
post_type.
Selleks saame kasutada järgmist funktsiooni:
See teeb mitut asja:
- Aktsepteerib
$viewsWordPressi standardmassiivi, - Lisab meie kohandatud ankru, nagu ülalpool kirjeldatud,
- lükkab selle
$viewsmassiivi, - Tagastab selle renderdamiseks WordPressile.
Ja see ongi kõik!
Selle testimine
Selle testimiseks laadige oma brauser ja te peaksite nägema ülejäänud ankrute (nt Kõik, Avaldatud, Minu, Prügikast, Ajastatud jne) kõrval uut Uncategorized linki.
Pärast seda muutke postituste kategooriat ja eemaldage Kategooriata, seejärel külastage uuesti või värskendage lehte Kõik postitused ja näete, et link on aktiivne ja stiiliga, olenevalt sellest, kuidas te seda vaatate, ning see sisaldab kategoriseeritud postituste arvu. sellisena ka.
Nüüd GitHubisse
Laadisin selle pistikprogrammi esimese iteratsiooni GitHubisse, et saaksite selle alla laadida ja mu-pluginstestimiseks oma kataloogi paigutada.
Eelseisvates postitustes tahaksin alustada sellest, et muuta see objektorienteeritud paradigmaks, nii et need on muudatused, mis tulevad pistikprogrammi ja tulevaste postituste sisusse.






