E’ ormai patrimonio comune del web il “READ MORE” o “READ ALL” o ancora “CONTINUE READING” o in italiano il classico “LEGGI TUTTO“.. tutti questi bottoni o link testuali traggono la loro origine dalla funzione the_excerpt() .

Questa funzione e i suoi derivati gestiscono gli “abstract” o riassunti dei nostri post all’interno dei template, in particolare entrano in funzione nelle pagine di archivio, siano esse la homepage (con un loop sugli ultimi post ad esempio) o gli archivi delle categorie, di Custom_post_type, dei calendari o delle ricerche.

Laddove esiste una lista di post è significativo l’utilizzo degli excerpt, mentre non ha utilizzo alcuno nelle pagine e nei post di tipo “single”.

Sebbene i temi dispongano della funzione di default, è possibile che in alcuni casi vi siano problemi nel display di questa componente e in ogni caso è molto spesso necessario modificarne ad esempio la lunghezza.

Tutte le funzioni che seguono vanno utilizzate all’interno del file functions.php del tema utilizzato ( riferimento: modifica di un theme WP)

Aggiungere il supporto all’excerpt per i custom_post_type:

<?php
add_action('init', 'SOFTRADE_CPT_Excerpt');
function SOFTRADE_CPT_Excerpt() {
	add_post_type_support( 'MIO_CPT', 'excerpt' ); //Sostituire 'MIO_CPT' con il vostro cpt
}
?>

Modificare la lunghezza dell’excerpt:

<?php 
function SOFTRADE_excerpt_length( $length ) {
	return 20; //Di default WP usa 55 parole, in questo caso 20
}
add_filter( 'excerpt_length', 'SOFTRADE_excerpt_length', 999 );
?>

 Utilizzo degli excerpt nei template:

Per utilizzare gli excerpt nei template archivio all’interno dei loop:

<?php
if (have_posts()) :
   while (have_posts()) :
      the_post();
        // the_content();//sostituzione dell'intero content del post con l'excerpt
       the_excerpt();
   endwhile;
endif;
?>

 Modifica del placeholder:

<?php
function SOFTRADE_excerpt_more( $more ) {
	return '[.....]';//di default […]
}
add_filter('excerpt_more', 'SOFTRADE_excerpt_more');
?>

Per versioni precedenti alla 2.9:

<?php
function SOFTRADE_excerpt_more( $excerpt ) {
	return str_replace( '[…..]', '...', $excerpt );
}
add_filter( 'wp_trim_excerpt', 'SOFTRADE_excerpt_more' );
?>

 Link al contenuto completo:

Nota: the_excerpt() non crea automaticamente i link al post che quindi va inserito manualmente:

<?php 
function SOFTRADE_excerpt_more($more) {
       global $post;
	return '<a class="moretag" href="'. get_permalink($post->ID) . '"> Leggi tutto...</a>';
}
add_filter('excerpt_more', 'SOFTRADE_excerpt_more');
?>

O ancora meglio, con supporto multilingue ( gettext po/mo, Torneremo in seguito sulla tematica della localizzazione dei temi, che, insieme alla traduzione dei contenuti, rientra nelle problematiche -non secondarie- di traduzione dei theme WP )

<?php 
function SOFTRADE_excerpt_more($more) {
       global $post;
	return '<a class="moretag" href="'. get_permalink($post->ID) . '">'. _e('Leggi tutto','mio_dominio').'...</a>';
}
add_filter('excerpt_more', 'SOFTRADE_excerpt_more');
?>