WordPressi teemaõpetus algajatele – 10. osa: rohkemate mallide lisamine
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.php
lehel ü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.php
funktsioonikutset get_template_part()
ja määrake oma malliosa fail parameetrina (ilma .php
laiendita). 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.php
on 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.php
failist 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.
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.php
ja 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 printf
väljastab selle (nagu kaja) ja sprintf
tagastab 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 printf
stringi kordava teksti sisse ja asendab stringikonstandi (%s
) teise argumendiga; mis on get_search_query()
.
Selle tulemusena saame "er" otsides sellise pealkirja:
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.php
teemat 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:
Nüüd saate (ja seda sageli soovitatakse) luua oma comments.php
teemas 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.