the_excerpt și shortcode-uri

18 feb. 2012, 07:41:21
Vizualizări: 17.7K
Voturi: 7

Folosesc the_excerpt pe pagina principală. De asemenea, utilizez un shortcode pentru dropcap la începutul fiecărui articol. Pe pagina principală, postările nu afișează litera cu shortcode-ul dropcap în jurul ei. Dacă articolul începe cu cuvântul "Câine", pagina principală afișează doar "âine". Cum pot face ca shortcode-urile să funcționeze când folosesc the_excerpt?

Shortcode

function drcap ($atts, $content = null) {
    return '<div class="dropcap">' . do_shortcode($content) . '</div>';
}

add_shortcode('dropcap', 'drcap');
0
Toate răspunsurile la întrebare 4
0
12

Lipiți acest cod în fișierul functions.php al temei dumneavoastră

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

În scurtcodurile de rezumat auto-generate vor fi eliminate de WordPress:

Un rezumat auto-generat va avea, de asemenea, toate scurtcodurile și etichetele eliminate. Este redus la o limită de cuvânt și lungimea implicită este de 55 de cuvinte.

Oricum, dacă utilizați câmpul de rezumat manual pentru articolul dvs., funcționează.

24 apr. 2015 23:59:59
1

Iată o soluție pentru includerea rezultatului shortcode-urilor în rezumatul generat automat de 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;
}

Această implementare presupune o lungime a textului de 55 de cuvinte.

Sper să fie de folos cuiva.

24 sept. 2015 21:24:59
Comentarii

Mulțumesc mult. Soluția acceptată nu funcționează pentru mine—și s-ar putea să nu funcționeze deloc pentru WordPress "modern" (2016+). Această soluție însă face exact ce am nevoie.

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

De asemenea, adăugați aceste 2 linii în fișierul functions.php pentru rezultate complete și cuprinzătoare:

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