the_excerpt e shortcode

18 feb 2012, 07:41:21
Visualizzazioni: 17.7K
Voti: 7

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');
0
Tutte le risposte alla domanda 4
0
12

Incolla questo nel file functions.php del tuo tema

add_filter( 'the_excerpt', 'shortcode_unautop');
add_filter( 'the_excerpt', 'do_shortcode');
18 feb 2012 09:13:59
0

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.

24 apr 2015 23:59:59
1

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.

24 set 2015 21:24:59
Commenti

Grazie mille. La soluzione accettata non funziona per me - e potrebbe semplicemente non funzionare per WordPress "moderno" (2016+). Questa invece fa quello che mi serve.

Andy Giesler Andy Giesler
16 mar 2016 21:33:26
0

Aggiungi anche queste 2 righe al tuo file functions.php per ottenere risultati completi e dettagliati:

add_filter('get_the_excerpt', 'shortcode_unautop');
add_filter('get_the_excerpt', 'do_shortcode');
4 mar 2015 16:13:47