Snippet: Meerdere excerpt lengtes in WordPress
Overzicht
Excerpt lengtes in WordPress
Handig als je artikelen op meerdere plaatsen weergeeft
Ongetwijfeld ben je al eens tegen het probleem aangelopen dat bij het ontwikkelen van een websites op meerdere "plaatsen" een samenvatting getoond moest worden van een (nieuws)bericht.
In WordPress wordt dit "the_excerpt" genoemd. Nu is het niet geheel onwaarschijnlijk dat "the_excerpt" op de homepage, waar bijvoorbeeld de laatste drie berichten worden getoond, korter moet zijn dan in het algemene nieuwsoverzicht. Dit kan als volgt, kopieer de volgende code en plak deze in de functions.php van je actieve thema.
Functions.php
function tsd_lengte_1($length) {
return 15; }
function tsd_lengte_2($length) {
return 25; }
function leesmeer($more) {
return '...'; }
function tsd_excerpt($length_callback='', $more_callback='') {
global $post;
if(function_exists($length_callback)){
add_filter('excerpt_length', $length_callback);
}
if(function_exists($more_callback)){
add_filter('excerpt_more', $more_callback);
}
$output = get_the_excerpt();
$output = apply_filters('wptexturize', $output);
$output = apply_filters('convert_chars', $output);
$output = ' '.$output.' ';
echo $output;
}
Met bovenstaande code is de mogelijkheid gecreëerd om gebruik te maken van twee lengte's als excpert, namelijk 15 en 25 karakters lang. Deze kun je op de volgende manier inladen:
tsd_excerpt('tsd_lengte_1', 'leesmeer'); // eerste (15) lengte inladen
tsd_excerpt('tsd_lengte_2', 'leesmeer'); // tweede (25) lengte inladen
Het toevoegen van meer lengtes kan door de functie (tsd_lengte_x) te kopieren. Je krijgt dan bijvoorbeeld:
function tsd_lengte_3($length) {
return 35; }