Problema con [...] che appare come […] in WordPress
C'è un problema con il mio sito WordPress, invece di [...] ottengo […] ovunque. Ho cambiato il charset in UTF-8 ma il problema persiste. Qualsiasi aiuto sarebbe apprezzato.
Ecco il link al sito web: http://theappjuice.com/

Ero estremamente frustrato da questo problema (e deluso dal fatto che l'autore originale non ci abbia rivelato come lo ha risolto, dato che vedo sul suo sito che ci è riuscito... Forse ha semplicemente cambiato tema?).
Per la cronaca, i puntini di sospensione un tempo venivano visualizzati correttamente. Ma qualche aggiornamento deve averli rovinati.
I miei estratti venivano visualizzati così:
the equipment involved [&hellip
e il sorgente veniva renderizzato così:
the equipment involved [&hellip</p>
mentre mi aspettavo che fossero visualizzati in questo modo:
the equipment involved ...
Ho modificato e giocato con formatting.php e default-filters.php senza successo.
Alla fine, ho capito che doveva essere legato al tema. Forse sì, forse no, ma è lì che sono riuscito a risolverlo definitivamente.
Ho trovato questa funzione nel functions.php del mio tema:
// Rimuove [...]
function trim_excerpt($text) {
return rtrim($text,'[...]');
}
L'ho aggiornata in:
// Rimuove [...]
function trim_excerpt($text) {
return $text;
}
In realtà non volevo le parentesi quadre attorno ai puntini di sospensione, quindi la mia versione finale è questa:
// Rimuove [...]
function trim_excerpt($text) {
$text = str_replace('[', '', $text);
$text = str_replace(']', '', $text);
return $text;
}
Ora i miei estratti visualizzano correttamente i puntini di sospensione, almeno nel modo in cui volevo che fossero visualizzati.
Spero che questo possa aiutare chiunque incontri questo problema.

Ho fatto quasi la stessa cosa, questa è stata la soluzione che ha funzionato per me:
// Sostituisce i puntini di sospensione predefiniti
function trim_excerpt($text) {
$text = str_replace('[…]', '', $text);
return $text;
}
add_filter('get_the_excerpt', 'trim_excerpt');

Per chiarire perché è accaduto, è perché la notazione rtrim( $text, '[...]' )
utilizzata per rimuovere i puntini di sospensione predefiniti in alcuni temi è errata.
Secondo la descrizione della funzione trim()
, il secondo argomento viene trattato come un elenco di caratteri, non come una stringa. Inoltre, [...
viene interpretato come un intervallo di caratteri ASCII dal punto (codice 2E) alla parentesi quadra aperta (codice 5B). Quindi, invece della sottostringa [...]
, il codice in questione rimuove qualsiasi carattere che rientri in quell'intervallo (incluso il punto e virgola, codice 3B), oltre alla parentesi quadra chiusa.
In WordPress 3.6, [...]
è stato cambiato in […]
per una migliore tipografia.
Non è un problema di per sé, tuttavia rtrim( $text, '[...]' )
taglia gli ultimi due caratteri di quella stringa, lasciando solo [&hellip
.
La soluzione è usare str_replace( '[…]', '', $text )
per WordPress 3.6+, oppure str_replace( '[...]', '', $text )
per le versioni precedenti. Puoi anche combinare entrambe le sostituzioni se lo desideri: str_replace( array( '[…]', '[...]' ), '', $text )
.
