wordpress custom post
4 naročniki
4 naročniki
imam eno vprašanje
imam spletno stran v wordpressu pa sem se odločil da bom prispevke oblikvoal malo drugače. sedaj bi pa rabil nek plugin ki bi mi omogočal da za vsak prispevek (ročno) nastavim kaj želim imeti da se mi prikaže pred klikom na read more in kj potem (tako kot to omogoča joomla)
recimo....
imam neko malenkost za prikazat pred klikom na read more (manjša slika, del teksta in šansa za prenos)
ko pa klikneš na read more ko se prikaže prispevek pa velika slika (ali več) pa komplet ves opis itd.
to bi rad naredil ročno in ne avtomatsko ker pri enih prispevkih bo to šlo drugače naredit :)
obstaja kaj takega za wordpress?
7 odgovorov
Jaz to delam v templatu. V functions.php kreiram nov tip vsebine, mu dodam polja in kategorizacije. Vse to laho dodajaš tudi obstoječim tipom vsebin (post, page). Potem pa prikažem tam kjer želim...
Torej recimo če želimo naredit nov tip vsebine npr. "dogodek"
functions.php:
registerposttype( 'dogodek',
array(
'labels' => array(
'name' => _( 'Dogodki' ),
'singularname' => _( 'dogodek' )
),
'public' => true,
'hasarchive' => true,
'rewrite' => array('slug' => 'dogodek'),
)
);
Temu je seveda določiti tudi potrebna polja. (npr. datum dogodka,...)
Potem narediš nov template za
single-dogodek.php in archive-dogodek.php.
array vseh custom polj dobiš z getpostcustom();
Recimo enostavni primer prikaza datuma pri dogodku v template fajlu bi bil tole:
$datum = getpostmeta($post->ID, 'datum_dogodka', true);
$lepdatum = date("j. n. Y ", strtotime($datum)); //oblikujemo lep prikaz datuma
echo $lepdatum;
Obstajajo seveda ekstenzije za to. Te ti to olajšajo. Jaz osebno sicer prisegam na old scool pristop. vse skupaj dela hitreje.
Primer wordpressa s custom tipi vsebin lahko vidiš tu:
zofijini.net
Pod themes - editor imaš datoteko content-single.php, kjer lahko konfiguriraš katere elemente naj vsebuje single page, torej direkt URL neke blog objave. Jaz sem na tak način noter vstavil ene bannerje in oglase, da mi jih prikazuje na vsaki objavi. Verjetno lahko v index.php ali content.php zadeve modificiraš na podoben način (mojo temo sem npr. moral ročno heknit, da je prikazovala 'read more' linke namesto polnih objav).
Pazit je treba tud to, da je možno, da se imena teh fajlov razlikujejo od teme do teme, tako da boš verjetno moral malo pobrskat. K sreči teh datotek ni dosti (mislim da ne več, kot 15, vsaj pri meni je tako).
Če sem te prav razumel rabiš samo <!--more--><!--noteaser--> ustaviti med besedilom, ki naj se prikaže v read more in potem na strani. Pazi, da ustavljaš pod tekst in ne grafično.
amon nekaj takega ja.
torej pod tekst moram urejati in pred (ali za gumbom?) read more vstaviti značko <!--noteaser--> in bi to bilo to?
hvala tudi vama jazzfunk in Street-smarts.
Značka <!--more--> določi do kje naj se pokaže vsebina na prvi strani:
aaaa<!--more-->bbbb
aaaa... Read more
Značka <!--noteaser--> pa poskrbi, da se vsebina pred read more ne pojavi še na odprtem prispevku. Obvezno jo ustaviš za značko <!--more--> torej
<!--more--><!--noteaser-->
Če ti tema že sama ustvari Read More link po določenem številu znakov, pa boš moral najbrž malo poseči v kodo (ker običajno pred readmore ne kaže slik) in zamenjati theexcerpt() z thecontent(), da bo v osnovi kazalo celotne prispevke, Read more pa se bo pojavil le ob uporabi značke <!--more-->.
Malo sem zakompliciral vse skupaj :D