Una funzione che uso molto spesso nei temi WordPress che realizzo è quella per tagliare i testi ad un determinato numero di caratteri.

Per farlo vanno tenuti presente diversi fattori, innanzitutto che bisogna eliminare tutti i tag html per non incorrere in tag html rimasti aperti, in secondo luogo elimino gli a capo che possono spezzare il testo all’interno delle textarea ed infine va considerata la possibilità che il testo sia meno lungo della lunghezza minima impostata mentre in caso contrario, dopo aver tagliato, aggiungerò un testo specifico o i classici puntini.

/**
 * Funzione per tagliare il testo a n caratteri
 *
 * Nota: Elimina i tag HTML e gli a capo
 *
 * @param string $str   Stringa da tagliare
 * @param int    $n     Numero di caratteri
 * @param string $dot   Testo alternativo ai '...'
 *
 */
function mc_trim( $str, $n, $dot = '...' ) {
    $str = strip_tags( $str );
    $str = str_replace( array("\r\n","\r","\n","\t","\0","\x0B"), ' ', $str );
    $str = preg_replace( '/\s+/', ' ', $str ); 
    if ( strlen( $str ) > (int) $n ) {
        $str = mb_substr( $str, 0, $n );
        return $str . $dot;
    } else {
        return $str;
    }
}

N.b. Il codice in questione non verifica se le parole vengono tagliate a metà.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *