Ce face the_content
Filtrul the_content primește conținutul articolului curent ca text HTML și trebuie să-l întoarcă. Prin el nucleul aplică, de exemplu, wpautop (paragrafe automate) și do_shortcode (shortcode-uri, cu prioritatea 11). Tu îl poți folosi ca să adaugi conținut înainte sau după articol.
Documentația recomandă verificarea is_main_query() și in_the_loop(): fără ele, modifici și conținutul afișat în bucle secundare (bară laterală, articole similare, subsol). Filtrul este aplicat și în alte locuri, de exemplu în răspunsurile REST și în feed-uri.
get_the_content() întoarce conținutul fără acest filtru; the_content() îl aplică.
Parametri
| Parametru | Descriere |
|---|---|
$content |
Conținutul articolului curent (HTML). |
Ce returnează
Funcția ta trebuie să întoarcă conținutul, modificat sau nu.
Exemple
Exemplul 1: O casetă după fiecare articol
Caseta apare doar pe pagina unui articol (is_singular( 'post' )), în bucla principală. În celelalte locuri conținutul rămâne neschimbat.
add_filter( 'the_content', 'dex_caseta_dupa_articol' );
function dex_caseta_dupa_articol( $content ) {
if ( is_singular( 'post' ) && in_the_loop() && is_main_query() ) {
$content .= '<div class="dex-caseta">' . esc_html( 'Te așteptăm la o cafea în Iași, pe strada Lăpușneanu.' ) . '</div>';
}
return $content;
}
Ce afișează pagina
<div class="dex-caseta">Te așteptăm la o cafea în Iași, pe strada Lăpușneanu.</div>
Exemplul 2: Timpul de citire deasupra articolului
Numărăm cuvintele (bucățile separate prin spații) din textul fără etichete HTML și presupunem 200 de cuvinte pe minut. Pentru un articol de 560 de cuvinte, ceil( 2.8 ) dă 3. Modificatorul u din expresia regulată tratează corect textul UTF-8 cu diacritice.
add_filter( 'the_content', 'dex_timp_citire' );
function dex_timp_citire( $content ) {
if ( ! is_singular( 'post' ) || ! in_the_loop() || ! is_main_query() ) {
return $content;
}
$text = trim( wp_strip_all_tags( $content ) );
$cuvinte = '' === $text ? 0 : count( preg_split( '/\s+/u', $text ) );
$minute = max( 1, (int) ceil( $cuvinte / 200 ) );
return '<p class="dex-timp">Timp de citire: ' . $minute . ' min</p>' . $content;
}
Ce afișează pagina
<p class="dex-timp">Timp de citire: 3 min</p>
Greșeli frecvente
echoîn loc dereturn: textul apare deasupra articolului (sau în altă parte), iar conținutul dispare dacă funcția nu întoarce nimic.- Fără verificări: caseta apare în rezumate, în widget-uri, în buclele de articole similare și în răspunsurile REST. Folosește
is_singular(),in_the_loop(),is_main_query(). - Apelezi
the_content()sauapply_filters( 'the_content', ... )în interiorul propriului filtru: filtrul se apelează pe el însuși la nesfârșit.
Comenzi înrudite
add_filter: Leagă o funcție de un filtru: WordPress îi dă o valoare, iar funcția întoarce valoarea modificată.apply_filters: Trece o valoare prin toate funcțiile legate de un filtru și întoarce rezultatul final; cu un nume nou, creează un filtru propriu.remove_action: Scoate o funcție legată de o acțiune sau de un filtru; callback-ul și prioritatea trebuie să fie identice cu cele de la adăugare.add_shortcode: Înregistrează un shortcode, de exemplu [dex_pret valoare=”25″], înlocuit în conținut cu HTML-ul întors de funcția ta.have_posts / the_post: Bucla WordPress (The Loop): have_posts() verifică dacă mai sunt articole, the_post() îl pregătește pe următorul.