nov 25 2008
Ultrakorte uddrag i WordPress
I WordPress kan man skrive et kort uddrag til de enkelte blogindlæg. Det er ofte anvendeligt på sites, der ikke nødvendigvis har karakter af en typisk weblog, f.eks. journalistiske magasiner, portaler eller virksomhedssites.
Uddraget har som udgangspunkt en størrelse på 55 ord og det kan man ikke umiddelbart ændre på. Men 55 ord kan godt være 40 ord for meget, hvis uddraget ønskes vist på en bestemt måde. Jeg har gravet lidt i uddraget og fundet frem til en måde at begrænse det på.
The_excerpt() laver for lange uddrag
For at implementere uddraget i templaten bruges tag’et the_excerpt() (se dokumentation her). Dette tag er imidlertid ikke en streng, men en funktion og derfor kan man ikke umiddelbart splitte det ad med PHP. Jeg fandt dog ud af, at grundlaget for funktionen the_excerpt() er strengen get_the_excerpt() og denne streng kan godt splittes ad.
Vi har altså brug for en funktion, der kan splitte indholdet i strengen op i enkeltord, tælle antallet af enkeltord og dernæst sætte det ønskede antal ord sammen igen. Jeg nåede frem til følgende opskrift:
Opskriften på korte uddrag
Put nedenstående funktion ind i filen functions.php i dit theme:
<?php
function string_limit_words($string, $word_limit)
{
$words = explode(' ', $string, ($word_limit + 1));
if(count($words) > $word_limit)
array_pop($words);
return implode(' ', $words);
}
?>Placér dernæst følgende kodestump i din template, der hvor du ønsker at få spyttet uddraget ud:
<?php
$excerpt = get_the_excerpt();
echo string_limit_words($excerpt,25);
?>… hvor 25 er antallet af ønskede ord i uddraget. Du kan nu styre, hvor mange ord der skal vises i dit uddrag.
Løsningen er tillige publiceret i WordPress’ supportforum.