¿Cómo puedo limitar la longitud de caracteres en el extracto?
Posible Duplicado:
extracto en caracteres
Tengo una pregunta después de leer esta publicación (Cómo resaltar términos de búsqueda sin plugin). Me gusta mucho esta función (Término de Búsqueda Sin Plugin) pero la longitud de caracteres es demasiado larga. ¿Qué código PHP debería agregar para hacer el extracto más corto? Agradecería si alguien puede sugerirlo. ¡Gracias!

Además del gancho de filtro mencionado en la respuesta de Deepa, aquí hay una función adicional que puede ayudarte a ampliar el uso de the_excerpt
de dos maneras:
Te permite...
Limitar el extracto por número de caracteres pero SIN truncar la última palabra. Esto te permitirá devolver un número máximo de caracteres pero conservando palabras completas, por lo que solo se devolverán las palabras que quepan dentro del límite especificado y te permitirá especificar la fuente de donde se obtendrá el extracto.
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).'">más</a>';
return $excerpt;
}
/*
Ejemplo... Lorem ipsum habitant morbi (26 caracteres en total)
Devuelve las primeras tres palabras que son exactamente 21 caracteres incluyendo espacios
Ejemplo.. echo get_excerpt(21);
Resultado... Lorem ipsum habitant
Devuelve lo mismo que arriba, no hay suficientes caracteres en el límite para devolver la última palabra
Ejemplo.. echo get_excerpt(24);
Resultado... Lorem ipsum habitant
Devuelve los 26 caracteres de nuestro contenido, se dio un límite de 30 caracteres, solo se necesitan 26 caracteres.
Ejemplo.. echo get_excerpt(30);
Resultado... Lorem ipsum habitant morbi
*/
Esta función se puede usar múltiples veces en los archivos del tema, cada una con diferentes límites de caracteres especificados.
Esta función tiene la capacidad de obtener un extracto de:
the_content
the_excerpt
Por ejemplo, si tienes publicaciones que contienen texto en el cuadro the_excerpt del editor de publicaciones, pero deseas obtener un extracto de the_content para un caso de uso especial, harías lo siguiente:
get_excerpt(140, 'the_content'); //el extracto se obtiene de get_the_content
Esto le indica a la función que deseas los primeros 140 caracteres de the_content
, independientemente de si hay un extracto configurado en el cuadro the_excerpt
.
get_excerpt(140); //el extracto se obtiene de get_the_excerpt
Esto le indica a la función que deseas los primeros 140 caracteres de the_excerpt
primero y, si no existe un extracto, se usará the_content
como alternativa.
La función se puede mejorar para hacerla más eficiente o incorporarse con el uso de filtros de WordPress tanto para the_content
como para the_excerpt
, o simplemente usarse tal cual en situaciones donde no existe una alternativa adecuada incorporada en la API de WordPress.

¡Hola! Gracias a todos por las respuestas proporcionadas. Me gustaría preguntar, ¿cómo hacer que funcione con ... en lugar de [...] al final del extracto?

La última línea, $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">más</a>';
, es lo que puedes usar para definir tu enlace "leer más" por así decirlo. Puedes ver que añade puntos suspensivos, pero puedes agregar lo que prefieras.

@Jornes puede que llegue 6 años tarde, pero aquí está el código HTML para los puntos suspensivos …

@NavnishBhardwaj 999 es la prioridad para cargar el filtro. Consulta aquí para más detalles. https://developer.wordpress.org/reference/functions/add_filter/
