Rimuovere il testo [...] dai riassunti degli articoli
Uso un tema che ha un limite di caratteri per i riassunti degli articoli e mostra [...] alla fine del limite di caratteri.
Voglio rimuoverlo, quindi ho cercato the_excerpt();
e l'ho sostituito con the_content();
Il problema si risolve con i contenuti normali ma persiste con i post di tipo immagine e c'è <?php the_excerpt(); ?>
che quando lo modifico fa comportare il riassunto come un post completo e non è correlato alla lunghezza del post.
Ho provato ad aprire tutti i file PHP del tema e cercare parole chiave come: limit, length, excerpt per trovare dove si trova il codice che definisce la lunghezza del riassunto, ho cercato persino "[...]" in tutti i file e nelle lingue ma non so da dove provenga.
Tutto quello che ho trovato sono alcune righe di codice in 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;
E quando aumento 18 non cambia nulla!
Quale codice devo cercare?
Il codex è tuo amico e dovrebbe essere la tua prima tappa :-)
Il [...]
viene aggiunto da the_excerpt()
. Esiste un filtro chiamato excerpt_more
che è specificamente incluso per personalizzare il testo "leggi di più" dopo l'estratto
Per rimuovere il [...]
dopo il testo dell'estratto, puoi fare quanto segue
function new_excerpt_more( $more ) {
return '';
}
add_filter('excerpt_more', 'new_excerpt_more');

grazie per la risposta
il tuo codice funziona bene per rimuovere [...], ma i post brevi sono ancora limitati e le parole vengono tagliate dopo un certo numero di caratteri
Vorrei che si comportasse normalmente (mostrando tutto ciò che c'è prima del tag read more nel mio post breve)

un'altra domanda solo per curiosità, come posso cambiare [...] con qualcos'altro ad esempio [ continua... ]

Dovresti leggere questo post. Ho coperto quasi tutto in quel post. Spero sia d'aiuto :-). Ricordati di accettare la mia risposta se ha risolto il tuo problema.

sembra che questo rimuova solo il link "leggi di più". I [...]
sono ancora presenti.

Come altri hanno già sottolineato, utilizzare l'hook filter excerpt_more
è la strada giusta da percorrere.
Volevo solo aggiungere che non è necessario scrivere una funzione che restituisca una stringa vuota. WordPress ha alcune funzioni integrate per restituire true, false, zero, null, stringa vuota o array vuoto.
In questo caso abbiamo bisogno di __return_empty_string()
Puoi aggiungere questo codice al tuo plugin o al file functions.php del tuo tema:
<?php
// Questo aggiungerà un filtro su `excerpt_more` che restituisce una stringa vuota.
add_filter( 'excerpt_more', '__return_empty_string' );
?>

Dovresti aggiungere questo al tuo functions.php
function custom_excerpt_more( $more ) {
return '';//puoi modificare questo con quello che preferisci
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
Inoltre, usare the_excerpt
ha il vantaggio di pulire automaticamente il contenuto, rimuovendo tutte le immagini e altri tag HTML.
Puoi leggere di più qui
Se vuoi anche modificare la lunghezza dell'estratto, puoi aggiungere questo snippet al tuo functions.php
:
function custom_excerpt_length( $length ) {
return 20;//modifica il numero con la lunghezza desiderata
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
Puoi leggere di più su questo qui

il tuo codice funziona bene cambiando la lunghezza ma quando rimuovo [...] risulta brutto quando una parte del paragrafo sembra mancare
sarebbe fantastico se in qualche modo riuscisse a rilevare un paragrafo invece della lunghezza!!
// un altro problema con l'excerpt riguarda gli shortcode, non posso inserire un lettore video o una presentazione nei miei post brevi

@Arioman, puoi cambiare il [...] con un link che dice "Continua a leggere", o quello che preferisci. Ora, se vuoi avere shortcode funzionanti, the_excerpt
non è quello che stai cercando, dovresti aggiungerlo alla domanda, poiché le risposte cambieranno.

@TomásCot grazie per questa fantastica guida. Ho inserito tutti i codici (codice completo) nel mio function.php e ho rimosso $wpse_excerpt = strip_tags($wpse_excerpt, wpse_allowedtags()); per accettare tutti i tag. Uso un lettore video in streaming per inserire video e genera shortcode come: [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 /] ma ottengo ancora un testo: Video: il mio video invece di mostrare il mio lettore video nel post breve. Qual è il mio problema??

'excerpt_more' è un hook di WordPress. Restituisce l'estratto del contenuto. Per rimuovere i [...] dopo il testo dell'estratto, puoi restituire una stringa vuota come nell'esempio seguente o personalizzarla secondo le tue esigenze. Usa questo codice nel file function.php
function custom_excerpt_more( $excerpt ) {
return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
