Code voorbeeld

Snippet: Meerdere excerpt lengtes in WordPress

Leestijd: 1 minuten (293) words
profile image

Rick de Jong

Strategie

July 03, 2012 07:05

Meerdere 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; }