the_excerpt e shortcode
Sto usando the_excerpt nella mia pagina indice. Utilizzo anche uno shortcode per il dropcap all'inizio di ogni mio post. Nella pagina indice, i post non mostrano la lettera con lo shortcode dropcap attorno. Se il mio post inizia con la parola "Cane", la pagina indice mostra "ane". Come posso far funzionare gli shortcode quando uso the_excerpt?
Shortcode
function drcap ($atts, $content = null) {
// Restituisce il contenuto avvolto in un div con classe dropcap
return '<div class="dropcap">' . do_shortcode($content) . '</div>';
}
// Aggiunge lo shortcode 'dropcap' che richiama la funzione drcap
add_shortcode('dropcap', 'drcap');
Nei riassunti auto-generati, gli shortcode verranno rimossi da WordPress:
Un riassunto auto-generato rimuoverà anche tutti gli shortcode e i tag. Viene ridotto a un limite di parole e la lunghezza predefinita è di 55 parole.
Tuttavia, se utilizzi il campo del riassunto manuale per il tuo articolo, funziona.

Ecco una soluzione per includere l'output degli shortcode negli estratti generati automaticamente da Wordpress:
add_filter('the_excerpt', 'do_shortcode');
remove_filter('get_the_excerpt', 'wp_trim_excerpt', 10);
add_filter('get_the_excerpt', 'my_custom_wp_trim_excerpt', 99, 1);
function my_custom_wp_trim_excerpt($text) {
if(''==$text) {
$text= preg_replace('/\s/', ' ', wp_strip_all_tags(get_the_content('')));
$text= explode(' ', $text, 56);
array_pop($text);
$text= implode(' ', $text);
}
return $text;
}
Questa implementazione assume una lunghezza di 55 parole.
Spero che possa essere utile a qualcuno.
