WordPressi teemaõpetus algajatele – 5. osa: Juurdepääs postituse teabele
See algajatele mõeldud WordPressi teemaõpetuse õppetund räägib sellest, kuidas pääseme juurde ja väljastame iga postituse teabele (nt selle lingile, pealkirjale ja muule), kui see on postitustsüklis. Teeme seda mallisiltide abil. Selle käigus lisame oma teemasse ka ühe vaate mallid.
Eelmises etapis lisasime postitustsükli, mis sisaldab the_post()funktsiooni. See funktsioon seadistab globaalsed muutujad ja tagab, et saame tsüklis olles kasutada lihtsaid ja intuitiivseid funktsioonikutseid, mida nimetatakse mallimärgenditekswhile.
Levinumad postitustsüklis kasutatavad mallisildid
See on loend kõige tavalisematest mallimärgenditest, mida soovite postituse teabele juurdepääsuks kasutada:
the_title()kordab postituse pealkirja.the_permalink()väljastab postituse püsilingi/URL-i.the_content()väljastab postituse sisu (toimetajalt)the_excerpt()kajab välja postituse väljavõte. Kui väljavõtte väli on tühi, kajab see postituse sisust välja esimesed 55 sõna koos sõnaga "…"the_ID()väljastab postituse ID.the_category()kajab välja kõik seotud kategooriad.the_tags()väljastab kõik seotud sildid.the_date()kordab postituse avaldamiskuupäeva.the_time()väljastab postituse avaldamise aja.the_author()kajab välja postituse autori kuvatava nimethe_post_thumbnail()väljastab postituse esiletõstetud pildi. Sellest õpetusest hiljem õpime, kuidas esiletoodud pisipiltidele tuge lisada.
Neid on palju rohkem. Kui olete huvitatud, vaadake WordPress Codexi dokumentatsiooni kõigi postituste siltide kohta. Vaadake lisateavet ka väljaspool rubriiki "postitage sildid" – need on sellel lehel veidi laiali.
Alustame mõne nende siltide juurutamist meie index.php. Lisan ka väga lihtsa HTML-i, et väljundit paremini vormindada. Soovitan teil lisada oma HTML-i! Lisage soovitud klassidega jaotusi, vahemikke, jaotisi, päiseid ja nii edasi.
Tsükli täpsustamine failis index.php
index.phpSooviksin lisada meie tsükli sisse lingi, mis läheb postituse püsilingile. Lingi sees tahaksin korrata postituse pealkirja. Siis tahaksin ka välja tuua postituse väljavõtte ja selle kategooriad.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php the_category(); ?>
</article>
endwhile;
the_posts_pagination();
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Mida ülaltoodud kood teeb, on;
- Rida nr 5 lisab HTML-i
<article>märgendi koos kõnega,post_class()millele luuakse kasulikud postitusklassid – täpselt nagubody_class()kasutasime eelmises etapis. - Ridadele 6-8 lisame
<h2>pealkirja sildi koos lingiga, mis viib postituse püsilingile (ühe vaade). - Rida nr 9 kajastab postituse väljavõtet.
- Ja real #10 kajastame postituse kategooriaid. Kuna ma ei edasta sellele kõnele ühtegi argumenti, on see vaikimisi
<ul>loend.
Selle tulemuseks on esilehe värskendamisel järgmine väljund:
Me jõuame kuhugi! Soovitan teil vaadata iga sildifunktsiooni dokumentatsiooni, mille parameetrid nad aktsepteerivad. Saate väljundit üsna palju muuta! Ja otsustage ise, milliseid mallisilte kasutada.
Proovige klõpsata postituse lingil ja veenduge, et jõuate sellele ühele postituse lehele. Nüüd näete, et silmus näitab ainult seda ühte postitust. Kuna meil on praegu aga ainult üks mall, index.phpkasutab seda malli ka üks vaade. Seega pole ühel vaatel palju mõtet. Me ei vaja seda endaga linkimiseks ja tahame näha postituse täielikku sisu! Parandame selle, luues oma teemas teise malli.
Ühe vaate mallide loomine
Kui mäletate algajatele mõeldud WordPressi teemaõpetuse esimeses õppetükis, vaatasime mallide hierarhiat? Kui oleme ühel postitusel või lehel, otsib WordPress single.phppostitusi ja page.phplehti. Kui üht neist ei leitud, naaseb WordPress, singular.phpmida jagatakse olenemata postituse tüübist. Kuid teemad üldiselt rakendatakse single.phpja page.phppostituste ja lehtede erinevuste tõttu. Lehekülgedel ei ole kategooriaid ja silte ning kuna lehti kasutatakse tavaliselt staatilise sisu jaoks, ei kuvata neil tavaliselt avaldamiskuupäeva ega kommentaare. See on siiski täielikult teie otsustada.
Loome single.phpja page.phpoma teema jaoks. Alustame kõigepealt postitustega.
Ühe postituse mall
Tehke oma teemakaustas koopia index.phpja nimetage see ümber single.php. Eemaldame püsilingi single.php(mis lingib iseendale) ja vahetame väljavõtte postituse täieliku sisuga välja. Ja lõpuks ei vaja me siin arhiivinavigeerimist.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
<?php the_category(); ?>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Lisame veel kasulikku teavet; näiteks postituse kuupäev ja autori nimi. Jällegi soovitan teil lisada HTML-i silte, et luua palju ilusam HTML-i struktuur.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
<?php the_category(); ?>
<p>Posted: <?php the_date(); ?> at <?php the_time(); ?></p>
<p>Author: <?php the_author(); ?></p>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Funktsioonid the_time()ja the_date()kordavad kuupäeva ja kellaaega vormingus, mille olete määranud halduspaneelil > Seaded. Kuid saate selle alistada, pakkudes nende meetodite parameetrina erinevat kuupäevavormingut.
Funktsioon the_author()kordab autori "kuvanime". Kui kasutaja pole oma profiilis muud nime sisestanud, kajab see kasutajanime.
Soovitan tungivalt mitte kunagi kasutajanimesid välja printida, kuna see võib ohustada turvalisust. Veenduge alati, et autorid on esitanud õige nime või ärge kasutage the_author().
Nii näeb mind praegu välja üksainus postitus. Vinge! Teeme ühe lehe malli.
Ühe lehe mall
Tehke omast koopia single.phpja nimetage see ümber page.php. Kõik, mida ma tegin, page.phpoli eemaldada kõik, mis pole lehtedega seotud. Lehekülgede kategooriate väljakajamine ei tööta ning eemaldasin ka kuupäeva, kellaaja ja autori. See on see, mida me sisse saame page.php:
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Hakkame lõpuks oma mallidega kuhugi jõudma! Kuid ma ei saa seda piisavalt korrata; Soovitan teil malle ja funktsioonide parameetreid oma maitse järgi muuta. Eelkõige rohkemate HTML-i ümbriste lisamine, et hiljem oleks lihtsam stiilida.
Järgmises etapis liigume mallidest veidi eemale ja uurime rohkem WordPressi teemade taustakodeerimist.

