Quando il riassunto di un post non viene specificato, WordPress utilizza il campo post_content
per estrarre un determinato numero di caratteri da usare come riassunto per la funzione the_excerpt()
(o get_the_excerpt()
). Ovviamente in questo caso anche la marcatura del post verrà restituita, creando problemi di formattazione. Un altro problema è che WordPress tiene conto dei caratteri e non delle parole, aumentando così i problemi da gestire se si vuole mostrare il riassunto dei post. Vediamo come ovviare a questi problemi.
Creiamo una funzione nel file functions.php
che, data una stringa di input, restituisce una stringa contenente solo il numero di parole specificato nel secondo parametro:
function excerpt_limit_words($string, $word_limit) {
$words = explode(' ', $string, ($word_limit + 1));
if(count($words) > $word_limit) {
array_pop($words);
}
return implode(' ', $words);
}
Quindi nel nostro tema possiamo usare questa funzione per creare un riassunto alternativo dopo aver eliminato tutti i tag HTML dalla stringa di input:
<?php
$excerpt = get_the_excerpt();
if ( empty($excerpt) ) {
$content = strip_tags(get_the_content());
echo excerpt_limit_words($content, 50);
}
?>