Brielle
Brielle
2016. aug 21

Előfordulhat, hogy olyan friss modul elrendezést szeretnénk készíteni oldalunkra, ami megköveteli a rövidített bejegyzést. Ilyen esetben problémás lehet minden egyes bejegyzésben readmore funkcióval törni a tartalmat, főleg, mivel a régebbi bejegyzésekben is hozzá kéne adni a törést, hogy ne lógjon túl tartalmuk a modulon. A következőkben egy nagyszerű funkcióról olvashattok, amivel mindezt a fölösleges munkát meg lehet spórolni: megtudhatjátok, hogyan lehet beállítani, hogy a bejegyzéseink egy megadott szószám szerinti hosszúságban törjenek meg.

 

Hogy ezt megvalósíthassuk, a főoldali modulokban (index.php) a <?php the_content (''); ?> kódot a következőre kell kicserélnünk:

<?php the_excerpt (''); ?>

Ez tulajdonképpen az alapértelmezett rövidítés szerint fogja megjeleníteni a bejegyzéseinket, ami 55 szó. Ha kevesebbet, vagy esetleg többet szeretnénk megjeleníteni, ahhoz egy másik kódra is szükségünk lesz, amit a functions.php-ba kell beillesztenünk:

/* meghatározott hosszúságú bejegyzés */
<?php
function custom_excerpt_length( $length ) {
return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

?>

A kódban a kiemelt return 20; sorban kell megadni a kívánt hosszot. A szám helyére kerüljön ez a kívánt szó mennyiség. Nyugodtan lehet vele kísérletezni, viszont azt is vedd figyelembe a bejegyzés hosszának megadása során, hogy valószínűleg hosszabb-rövidebb szavakat is fogsz használni, így inkább adj meg kevesebbet, mint többet. Fontos, hogy a 999 számot semmiképpen ne töröld ki, vagy írd át, mert csak ezzel a kóddal fog rendesen működni!

Ebben a megoldásban láthatjuk, hogy ha a bejegyzésünk hosszabb, mint a megadott szó mennyiség, akkor egy […] fog megjelenni a szöveg végén. Ha ezt szeretnénk megváltoztatni, akkor azt a következő kóddal tudjuk megtenni, melyet szintén a functions.php-ba kell beillesztenünk:

/* törés formázása meghatározott hosszúságú bejegyzés esetén */
<?php
function custom_excerpt_more( $more ) {
return '...';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
?>

Ebben az esetben is a return ‘…’; sorban változtathatunk a megjelenésen.  A két idézőjel között adhatjuk meg, mi jelenjen meg lerövidített bejegyzés esetén. Szerintem a ‘…’ az egyik legjobb megoldás, viszont bármi mást odaírhatsz. HTML kódok nem fognak működni.

Ez esetben ha a látogató el szeretné olvasni a teljes bejegyzést, a címre kell kattintania. Menj biztosra, hogy a címre be van linkelve a teljes bejegyzés elérési url-je, vagyis a következőképpen jelenik-e meg a kód index.php-ban:

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

Ha nem így jelenik meg, akkor mindenképpen érdemes pótolnod. Viszont ha azt szeretnéd, egyértelműbb legyen a teljes bejegyzés elérése, akkor itt is készíthetsz egy ‘Tovább olvasom’ linket. Ezt a következő kóddal jelenítheted meg index.php-ban az <?php the_excerpt (''); ?> kód után:

<a href="<?php the_permalink(); ?>" class="readmore">Tovább olvasom »</a>

Ezt a gombot kedved szerint formázhatod a readmore class segítségével CSS-ben.

Ennyi lenne a tutorial, remélem hasznosnak vélted. Ha bármi kérdésed akadna, vagy valamit nem sikerült a leírtak alapján megvalósítanod, akkor bátran írj egy hozzászólást!

Kódok a WordPress Codex-ből származnak.


Kérdésed van? Írj bátran!









Hozzászólásod csak jóváhagyás után fog megjelenni.

Ellenőrző kód *