Excerpt je funkce, která zobrazuje část výpisu článku a můžete se s ní setkat při výpisu článků na hlavní straně, v archívech a kategoriích. Délka výpisu je v základu nastavená na padesát pět slov a všechny html tagy jsou z něj odstraněny. Proto se v perexu, který je vytvořený pomocí the_excerpt a ne pomocí tagu more, nezobrazí žádné odkazy.
Funkce the_excerpt() rovnou vrací výpis z článku, není potřeba použít echo, pokud potřebujete získat výpis jako řetězec, použijte get_the_excerpt(). Funkce musí být použita uvnitř Loopu.
Použití
<?php the_excerpt(); ?> |
Změna délky excerpt
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); |
Pro změnu délky excerpt je použit filtr excerpt_lenght. Délku ovlivníte hodnotou, kterou vrací funkce custom_excerpt_length, pokud použijete podmiňovací funkce, můžete měnit délku excerptu v závislosti na kategorii, zda jde o homepage, či archív autora.
Odstranění […] z excerpt
function new_excerpt_more( $more ) { return ''; } add_filter('excerpt_more', 'new_excerpt_more'); |
Opět je použit filtr, tentokrát excerpt_more a díky return “, se nezobrazí nic. Pokud to změníme na return ‚Článek pokračuje‘, tak se na konci excerptu zobrazí uvedený řetězec.
Stejně tak, můžeme pomocí excerpt_more vytvořit na konci excerptu odkaz „Číst více“.
function new_excerpt_more( $more ) { return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Číst více</a>'; } add_filter( 'excerpt_more', 'new_excerpt_more' ); |
Pozn. pro popis funkce byl použit originální kód z WordPress.org Codexu.
Tak přesně tohle jsem potřeboval. Na jaře jsem koupil šablonu DW-Focus, ve které jsem se marně snažil zkrácené výpisy nastavit. Dnes jsem se dal inspirovat tímto příspěvkem a povedlo se. Zjistil jsem přitom, že tvůrci prémiové šablony jaksi do functcions.php nedali délku výpisu, i když je potřeba např. ve výpisech archivních příspěvků, kde jinak přetékají za okraje mřížky.
A přitom jsem tam našel ještě dvě chyby – místo „excerpt“ bylo ve functions.php „exceprt“. Oni se vůbec dost pletou ve znacích: když jsem šablonu alespoň trochu překládal, plno řetězců nešlo načíst do .po souboru (soubor .po není v balení musel jsem si pomoci pluginem). A právě v řetězcích pro překlad bylo asi 100 chyb – místo „podtržítka“ „mínus“.
Díky moc
Díky za komentář, jsem rád, že někdo čte i jiné posty, než jen o pluginech a free šablonách.
Ahoj.
Moc děkuji za první vysvětlení, které mě nakoplo co dělat. Jenže jsem v koncích.. Používám twentyfourteen šablonu a chci zkrátit text článků ve výpisech. jenže nevím, kam to dát. nejdál jsem se dostal k tomu, že se výpis ukázal, ale nad článkem a pak byl náhled a pod tím celý článek. Poradíš, prosím?
Díky moc.
Ahoj
mám k tomu otázku. V šabloně kterou používám mi tahle funkce vypisuje/zobrazuje na stránce eshop kategorie (woocommerce) popis té kategorie (což chci). Ale jen když v ní nejsou produkty. Jakmile přidám do kategorie produkty, prestane se popis zobrazovat. Da se to nejak nastavit tak, aby se popis zobrazoval vzdy?
diky
D.
Řekl bych, že použití the_excerpt() je v tomhle případě nevhodné, zkusil bych místo toho the_archive_description().