Come posso limitare la lunghezza dei caratteri nell'excerpt?
Possibile Duplicato:
excerpt in caratteri
Ho una domanda dopo aver letto questo post (Come evidenziare i termini di ricerca senza plugin). Mi piace molto questa funzione (Termine di Ricerca Senza Plugin) ma la lunghezza dei caratteri è troppo lunga. Quale codice PHP dovrei aggiungere per rendere l'excerpt più corto? Apprezzerei molto se qualcuno potesse suggerirlo. Grazie!

Oltre al gancio del filtro fornito nella risposta di Deepa, ecco una funzione aggiuntiva che può aiutarti a estendere l'uso di the_excerpt
in due modi,
Ti permette di...
Limitare l'estratto per numero di caratteri ma SENZA troncare l'ultima parola. Questo ti consentirà di restituire un numero massimo di caratteri preservando le parole intere, quindi verranno restituite solo le parole che possono rientrare nel limite specificato e ti permetterà di specificare la fonte da cui verrà preso l'estratto.
function get_excerpt($limit, $source = null){
$excerpt = $source == "content" ? get_the_content() : get_the_excerpt();
$excerpt = preg_replace(" (\[.*?\])",'',$excerpt);
$excerpt = strip_shortcodes($excerpt);
$excerpt = strip_tags($excerpt);
$excerpt = substr($excerpt, 0, $limit);
$excerpt = substr($excerpt, 0, strripos($excerpt, " "));
$excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt));
$excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">altro</a>';
return $excerpt;
}
/*
Esempio... Lorem ipsum habitant morbi (26 caratteri totali)
Restituisce le prime tre parole che sono esattamente 21 caratteri inclusi gli spazi
Esempio.. echo get_excerpt(21);
Risultato... Lorem ipsum habitant
Restituisce lo stesso di sopra, non ci sono abbastanza caratteri nel limite per restituire l'ultima parola
Esempio.. echo get_excerpt(24);
Risultato... Lorem ipsum habitant
Restituisce tutti i 26 caratteri del nostro contenuto, limite di 30 caratteri dato, servono solo 26 caratteri.
Esempio.. echo get_excerpt(30);
Risultato... Lorem ipsum habitant morbi
*/
Questa funzione può essere utilizzata più volte nei file del tema, ciascuna con limiti di caratteri diversi specificati.
Questa funzione ha la capacità di recuperare un estratto da entrambi,
the_content
the_excerpt
Ad esempio, se hai post che contengono testo nella casella the_excerpt nell'editor dei post, ma vuoi estrarre un estratto dal corpo the_content per un caso d'uso speciale, faresti invece;
get_excerpt(140, 'the_content'); //l'estratto viene preso da get_the_content
Questo indica alla funzione che vuoi i primi 140 caratteri da the_content
, indipendentemente dal fatto che sia stato impostato un estratto nella casella the_excerpt
.
get_excerpt(140); //l'estratto viene preso da get_the_excerpt
Questo indica alla funzione che vuoi i primi 140 caratteri da the_excerpt
e se non esiste un estratto, verrà utilizzato the_content
come fallback.
La funzione può essere migliorata per essere resa più efficiente e/o incorporata con l'uso dei filtri di WordPress sia per the_content
che per the_excerpt
o semplicemente utilizzata così com'è in situazioni in cui non esiste un'alternativa adatta già integrata nell'API di WordPress.

Ciao! Grazie a tutti per le risposte fornite! Vorrei chiedere, come si può fare per far apparire ... invece di [...] alla fine dell'estratto?

L'ultima riga, $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>';
è quella che puoi usare per definire il tuo link "leggi tutto". Come puoi vedere aggiunge i puntini di sospensione ma puoi inserire quello che preferisci.

@Jornes forse sono passati 6 anni, ma ecco il codice HTML per i puntini di sospensione …

@NavnishBhardwaj 999 è la priorità per il caricamento del filtro. Per maggiori dettagli, consulta qui. https://developer.wordpress.org/reference/functions/add_filter/
