Elimină textul mai mult sau [...] din articolul scurt

21 sept. 2014, 14:24:29
Vizualizări: 54.3K
Voturi: 14

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?

0
Toate răspunsurile la întrebare 6
5
28

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');
21 sept. 2014 15:17:02
Comentarii

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ă)

Arioman Arioman
21 sept. 2014 18:00:13

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

Arioman Arioman
21 sept. 2014 18:00:58

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.

Pieter Goosen Pieter Goosen
21 sept. 2014 18:04:21

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

Jules Jules
21 sept. 2017 11:02:24

Excelent, funcționează și pentru blocul de rezumat Query loop în editorul Gutenberg.

Iggy Iggy
25 sept. 2022 03:20:42
0

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' ); 
?>
23 mar. 2019 15:14:43
6

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

21 sept. 2014 15:15:58
Comentarii

Ce versiuni țintești, adică înainte de 2.9 :-)

Pieter Goosen Pieter Goosen
21 sept. 2014 15:17:58

@PieterGoosen, cred că pe cea greșită.

Tomás Cot Tomás Cot
21 sept. 2014 15:20:14

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 Arioman
21 sept. 2014 18:14:24

@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ás Cot Tomás Cot
21 sept. 2014 18:26:12

@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??

Arioman Arioman
22 sept. 2014 09:34:38

Poți adăuga codul în întrebare?

Tomás Cot Tomás Cot
23 sept. 2014 02:18:46
Arată celelalte 1 comentarii
0

asta funcționează pentru mine!

function change_excerpt( $text )
{
    $pos = strrpos( $text, '[');
    if ($pos === false)
    {
        return $text;
    }

    return rtrim (substr($text, 0, $pos) );
}
add_filter('get_the_excerpt', 'change_excerpt');
21 feb. 2017 07:29:41
0

'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' );
13 iun. 2019 12:00:35
0

Încercați să creați o nouă funcție în fișierul functions.php:

function custom_excerpt() {
 $text=preg_replace( "/\\[&hellip;\\]/",'introduceți aici ce doriți să înlocuiți',get_the_excerpt());
echo '<p>'.$text.'</p>';
}

Apoi utilizați noua funcție pe pagina dvs.

16 iun. 2016 14:13:37