Custom Excerpt Function

Hvad er et WordPress-Excerpt?
Et WordPress-excerpt (uddrag) er grundlæggende et resumé af en længere artikel, der ofte bruges som erstatning på blogindekset og arkiveringssider for at undgå at skulle vise det fulde indhold af hvert indlæg.

Excerpt / Uddrag giver derfor mulighed for at slanke dette ved at vise korte resuméer i stedet for den fulde tekst for hvert indlæg.

Hvorvidt et tema viser uddrag eller ej, er helt op til temaudvikleren. WordPress-core har dog en indbygget funktionalitet til håndtering af uddrag. Som standard genererer WordPress Excerpt et uddrag på de første 55 ord i et indlæg fra content feltet.

Hvis du gerne vil ændre længden på den indbyggede exerpt længde så kan du bruge denne filter-funktion. Du indkluderer funktionen i dit tema’s functions.php fil.

// Filter except til 20 ord.
function change_excerpt_length( $limit) {
return 20;
}
add_filter( 'excerpt_length', 'change_excerpt_length', 999 );

Hvordan laver min sin egen custom Excerpt function

Men hvad nu hvis du gerne vil…

  • vise et længere eller kortere uddrag og have valgmuligheder alt efter om det er indlæg, testimonials eller noget helt tredje
  • Eller hvis du gerne vil gøre brug af et andet meta_data fra indlægget end get_the_content()
  • Eller hvis du gerne vil styrer dit uddrag på antal tegn, i stedet for antal ord

I disse tilfælde kan du inkluderer denne funktion i dit tema functions.php fil. Denne funktion styrer længden på antal tegn og du kan selv valgfrit vælge hvilken string som den skal cutte teksten fra.

function excerpt($id ,$limit)
{
	//$excerpt = explode(' ', $id, $limit);
    $excerpt = $id;
	if (strlen($excerpt) >= $limit) {
		$excerpt = substr($excerpt, 0, $limit).'...';
	} else {
		$excerpt = $excerpt;
	}

//remove shortcodes eg
	$excerpt = preg_replace('`[[^]]*]`', '', $excerpt);

//retun data
	return $excerpt;
}

Når du så vil outputte funktionen i dit tema et sted, fx ved visning af et indlæg på en arkivside, så gøres det således 🙂

/*
Eksempel: 
 $string = 'tekst tekst tekst';
$lenght = '100'; // 100 tegn
*/

//output function
echo excerpt($string, $lenght);