Afisează doar conținutul înainte de tag-ul more
Folosesc șablonul Siren. În homepage.php acest cod este folosit pentru a afișa conținutul portofoliului
print_excerpt(200);
Dar trebuie să afișez doar conținutul de dinainte de <!--more-->
Am încercat să folosesc:
the_content( $more_link_text, FALSE);
dar nu funcționează. Afișează tot conținutul

Puteți utiliza funcția WordPress get_extended
pentru a prelua diferitele părți ale unui șir de caractere (partea dinainte și partea după eticheta <!--more-->
). get_extended
returnează un array cu trei chei, dintre care cheile main
și extended
sunt importante: $arr['main']
conține partea dinaintea etichetei "more", iar $arr['extended']
partea de după eticheta "more".
Acest lucru ar produce ceva de genul:
// Preluare conținut post
$content = get_post_field( 'post_content', get_the_ID() );
// Obținere părți conținut
$content_parts = get_extended( $content );
// Afișare parte dinainte de <!--more-->
echo $content_parts['main'];

Mică îmbunătățire pentru a fi consistent cu funcția the_content()
: echo apply_filters('the_content', $content_parts['main']);

Am avut probleme cu filtrele de bloc care nu rulează corect pe $content_parts['extended']
, chiar și atunci când foloseam apply_filters('the_content', $content_parts['extended'])
. Soluția a fost să rulez mai întâi $filtered_content = apply_filters('the_content', $content)
și apoi $content_parts = get_extended( $filtered_content )
.

Din păcate, se pare că toate funcțiile din WordPress care ar trebui să afișeze rezumatul (get_extended
, get_extended
) nu aplică tag-urile HTML și nici nu convertesc întoarcerile la rând în paragrafe așa cum era de așteptat.
Dacă aveți nevoie să afișați rezumatul cu formatare, vă sugerez să folosiți acest cod:
global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;
Cu această soluție temporară, îi spuneți funcției the_content() că se află în interiorul unei bucle, obținând conținutul dinaintea tag-ului more.
