Elimină textul mai mult sau [...] din articolul scurt
Folosesc o temă care are o limită de caractere pentru articolele scurte și afișează [...] la sfârșitul limitei de caractere.
Vreau să elimin acest lucru, așa că am căutat the_excerpt();
și l-am înlocuit cu the_content();
Problema s-a rezolvat cu conținutul normal, dar încă am probleme cu postările de tip imagine și există <?php the_excerpt(); ?>
care atunci când îl modific, rezumatul meu se comportă ca un articol complet și nu are legătură cu lungimea articolului.
Am încercat să deschid toate fișierele PHP din temă și să caut cuvinte cheie precum: limit, length, excerpt pentru a găsi codul care definește lungimea rezumatului, am căutat chiar și "[...]" în toate fișierele și în fișierele de limbă, dar nu știu de unde provine.
Tot ce am găsit sunt câteva linii de cod în function.php
if ( ! function_exists( 'string_limit_words' ) ) :
function string_limit_words($str, $limit = 18 , $need_end = false) {
$words = explode(' ', $str, ($limit + 1));
if(count($words) > $limit) {
array_pop($words);
array_push($words,'...');
}
return implode(' ', $words);
}
endif;
Și când măresc valoarea 18, nimic nu se schimbă!
Ce cod trebuie să caut?
Codex-ul este prietenul tău și ar trebui să fie prima ta oprire :-)
[...]
este adăugat de the_excerpt()
. Există un filtru numit excerpt_more
care este inclus special pentru a personaliza textul "citește mai mult" după fragment.
Pentru a elimina [...]
după textul fragmentului, poți face următoarele:
function new_excerpt_more( $more ) {
return '';
}
add_filter('excerpt_more', 'new_excerpt_more');

mulțumesc pentru răspuns
codul tău funcționează bine pentru eliminarea [...], dar postările scurte sunt încă limitate și cuvintele sunt tăiate după un anumit număr de caractere
doresc să se comporte normal (tot conținutul dinainte de tagul read more să apară în postarea mea scurtă)

altă întrebare doar din curiozitate, cum pot schimba [...] cu altceva, de exemplu [ mai mult... ]

Ar trebui să citești acest articol. Am acoperit cam totul în acel articol. Sper să te ajute :-). Nu uita să accepți răspunsul meu dacă te-a ajutat să rezolvi problema.

se pare că acest lucru elimină doar link-ul "read more". Simbolul [...]
încă apare.

După cum au subliniat și alții, utilizarea cârligului de filtrare excerpt_more
este abordarea corectă.
Voiam doar să adaug că nu este necesar să scrii o funcție care returnează un șir gol. WordPress are câteva funcții încorporate pentru a returna true, false, zero, null, șir gol sau array gol.
În acest caz avem nevoie de __return_empty_string()
Poți adăuga acest cod în plugin-ul tău sau în fișierul functions.php al temei:
<?php
// Aceasta va adăuga un filtru pe `excerpt_more` care returnează un șir gol.
add_filter( 'excerpt_more', '__return_empty_string' );
?>

Ar trebui să adaugi acest cod în fișierul tău functions.php
function custom_excerpt_more( $more ) {
return '';//poți modifica acest return cu orice dorești
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
De asemenea, utilizând the_excerpt
ai avantajul că conținutul este automat curățat, iar toate imaginile și alte tag-uri HTML sunt eliminate.
Poți citi mai multe aici
Dacă dorești să modifici și lungimea rezumatului, poți adăuga acest fragment de cod în functions.php
:
function custom_excerpt_length( $length ) {
return 20;//modifică numărul pentru lungimea dorită
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
Poți afla mai multe despre aceasta aici

codul tău funcționează bine cu schimbarea lungimii, dar când elimin [...] arată urât când o parte din paragraf pare lipsă
ar fi minunat dacă s-ar putea detecta un paragraf în loc de lungime!!
// o altă problemă cu rezumatul este legată de shortcodes, nu pot pune player video sau slideshow în postările mele scurte

@Arioman, poți înlocui [...] cu un link care să spună "Continuă să citești", sau orice altceva dorești. Acum, dacă vrei să ai shortcode-uri funcționale, the_excerpt
nu este ceea ce cauți, ar trebui să adaugi acest lucru în întrebare, deoarece răspunsurile se vor schimba.

@TomásCot mulțumesc pentru acest ghid fantastic. Am pus toate codurile (codul complet) în fișierul meu function.php și am eliminat $wpse_excerpt = strip_tags($wpse_excerpt, wpse_allowedtags()); pentru a accepta toate tag-urile. Folosesc un player video pentru a insera videoclipuri și acesta generează shortcode-uri precum: [stream flv=http://***/clip/shad.m4v embed=false share=false width=640 height=360 dock=true controlbar=over bandwidth=high autostart=false responsive=16:9 /] dar tot primesc un text: Video: videoclipul meu în loc să afișez player-ul meu video în postările scurte. Unde este problema mea??

'excerpt_more' este un hook WordPress. Acesta returnează fragmentul de conținut. Pentru a elimina [...] după textul fragmentului, puteți returna gol ca mai jos sau conform cerințelor personalizate. Utilizați acest cod în function.php
function custom_excerpt_more( $excerpt ) {
return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
