✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

WordPressi teemaõpetus algajatele – 10. osa: rohkemate mallide lisamine

8

Selles algajatele mõeldud WordPressi teemaõpetuse õppetükis sukeldume lähemalt mallidesse. Õpime tundma mallide osi ja rakendame seda korduvkasutatavaks. Ja me lisame oma teemasse rohkem WordPressi vaikemalle.

Kuid enne mallifailide lisamist peame teadma, miks peaksime malliosadega vaeva nägema.

Malli osad: paindlikumad ehitusplokid

Malli osad töötavad täpselt nii, nagu get_header()me get_footer()õppisime 2 osas, kuid ei piirdu nende failidega. Saate kasutada malli osi mis tahes faili jaoks, mida soovite!

Teemad kasutavad tsükli postituste jaoks tavaliselt malliosa. Tavaliselt kuvavad paljud mallid, nagu kategooria, arhiiv ja otsingutulemused, tavaliselt iga postituse tsüklina samal viisil. Seetõttu on väga hea mõte eraldada postitustsükli väljund üheks failiks. Nii ei pea te seda igas mallis kordama.

"Teisendame" osa olemasolevast koodist malliosadeks, enne kui hakkame rohkem malle tegema!

Postitustsükli malli osa loomine

Looge meie teemakausta uus tühi fail; kutsus content-loop.php. Saate malli osadele nimed anda nii, nagu soovite. Kuid te ei saa neid nimetada samamoodi nagu ühelegi WordPressi määratletud mallile. Otsige meie index.phplehel üles kõik, mis teil silmuse sees on, lõigake see välja ja kleepige sisse content-loop.php.

Kasutage nüüd tühja tsükli sees index.phpfunktsioonikutset get_template_part()ja määrake oma malliosa fail parameetrina (ilma .phplaiendita). Nii peaks see mõlemas failis välja nägema:

... while (have_posts()): the_post(); get_template_part('content-loop'); endwhile; the_posts_pagination(); ...

Kui värskendate oma esilehte, ei tohiks te vahet näha.

Suurepärane! Nüüd, kui see index.phpon kena ja puhas, saame seda kasutada alusena, et dubleerida rohkematesse mallidesse. Allpool käsitlen kategooriamalli ja otsingutulemuste malli lisamist, kuid soovitan teil luua rohkem malle, et saaksite oma teema kujundamist paremini juhtida.

Kategooriamalli lisamine

Kui vaatate tagasi WordPressi mallide hierarhiale , näete, et postituste kategooriate puhul otsib WordPress malli nimega category.php. Esmalt loome selle.

Tehke oma teemakaustas index.phpfailist koopia ja nimetage koopia ümber category.php.

Ja see ongi kõik. Põhimõtteliselt olete valmis…!

Siiski lisame ühe detaili; tahame näidata pealkirja, mis ütleb meile, et oleme kategooria X postituste kategoorialehel. WordPressil on selleks funktsioon, mida saate kasutada kõigis arhiivimallides (kategooria, sildid, kuupäevaarhiivid), the_archive_title. Lisame selle silmuse ette, <h1>sildi sisse.

Kui vaatate postituse kategooria lehte, peaksite nägema midagi sellist arhiivipealkirjaga "Kategooria:". PS: Kui soovite muuta arhiivi pealkirja väljundit (näiteks mitte näidata "Category: "), saate lisada filtri get_the_archive_title. Dokumentatsioonilehel on suurepärane näide selle kohta, kuidas seda teha.

WordPressi teemaõpetus algajatele – 10. osa: rohkemate mallide lisamine

Noh, see oli lihtne! Järgmisena käsitleme otsingutulemuste malli.

Otsingutulemuste malli lisamine

Protseduur on täpselt sama, mis kategooriamallide puhul. Seekord tehke koopia category.phpja nimetage koopia ümber nimeks search.php.

Kõik, mida peame parandama, on pealkiri. Arhiivi pealkirja funktsioon, mida kasutasime kategooria mallis, ei tööta kahjuks väga hästi otsingutulemuste malli puhul. Tegelikult pole WordPressis lihtsat funktsiooni, mis meie jaoks pealkirja välja annaks.

Kuid me saame selle ise hõlpsasti teha ja samal ajal näitan, kuidas dünaamilist muutujat väljastada ja teksti siiski tõlkida.

PHP-l on kaks kasulikku funktsiooni printf()ja sprintf(). Nad teevad sama, välja arvatud see, et printfväljastab selle (nagu kaja) ja sprintftagastab selle, nii et saame selle muutujasse salvestada. Pärast teksti sisestamist esimesteks parameetriteks saame argumentidena lisada dünaamilisi muutujaid, mis seejärel teksti sisestatakse. Nende sees saame kasutada tõlgitavaid tekstifunktsioone __()ja _e(). Soovitan teil lugeda natuke printf või sprintf toimimise kohta, sest ma ei hakka siin rohkem detailidesse laskuma.

WordPress pakub otsitud stringi hankimiseks lihtsat funktsiooni; get_search_query(). Seda öeldes asendame arhiivi pealkirja funktsiooni sellega;

See, mida ülaltoodud kood teeb, on seest väljapoole; tõlgitava teksti "Otsi: %s" määratlemine, mis asetatakse printfstringi kordava teksti sisse ja asendab stringikonstandi (%s) teise argumendiga; mis on get_search_query().

Selle tulemusena saame "er" otsides sellise pealkirja:

WordPressi teemaõpetus algajatele – 10. osa: rohkemate mallide lisamine

Tore! Veel üks mall tehtud. Mis puudutab selle õppetüki viimast osa, siis läheme oma ühe postituse malli juurde ja lisame midagi WordPressis väga levinud; kommentaaride mall.

Kommentaaride malli lisamine ühele postitusele

Meie single.php, pärast postituse artiklit, tahame näidata kommentaare. Kommentaarid peaksid väljastama eelmiste kommentaaride loendi ja uue kommentaari lisamise vormi.

Kommentaaride mall on mallifail, mille saate oma teemale lisada, kuid WordPressil on tegelikult oma vaikekommentaaride malli väljund. Kui teil seda comments.phpteemat pole, tagastab kommentaaride malli taotlemine selle jaoks WordPressi vaikeväljundi. Seda me selles õpetuses teemegi.

Soovime kutsuda kommentaaride malli ainult siis, kui postitusel on aktiveeritud kommentaarid (see on iga postituse seade ja globaalne saidi seade). Seega lisame kontrolli, kas kommentaarid on lubatud, comments_open()ja kui see tagastab tõene, taotleme kommentaaride malli comments_template(). Pidage meeles, et see kõik peab toimuma tsükli jooksul. Lisasin selle pärast tsükli lõppu </article>, vahetult enne tsükli sulgumist.

Kui külastate ühte postitust, mis on lubanud kommentaare (lisasin kommentaari lihtsalt selleks, et näidata teile ka kommentaaride loendit); saate selle ilusa (ahm) kommentaaride vaikemalli:

WordPressi teemaõpetus algajatele – 10. osa: rohkemate mallide lisamine

Nüüd saate (ja seda sageli soovitatakse) luua oma comments.phpteemas oma, mis alistab WordPressi vaikeväljundi. Kuid ma ei loo selles õpetuses kommentaaride malli, kuna WordPressi vaikeväljund töötab hästi seni, kuni kujundate selle õigesti. Kui uurite HTML-i, on saadaval palju ümbriseid ja klasse.

Kasutatud meetodite dokumentatsioon

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem