
✂️ Cómo cambiar la longitud del extracto en WordPress
Al visitar el archivo de un blog, usted ve «ladrillos»: una entrada tiene un anuncio de media pantalla, otra tiene apenas dos líneas secas. Esto sucede porque WordPress por defecto recorta los extractos a 55 palabras, un número inventado hace casi dos décadas y que no se ha modificado desde entonces.
El problema es que una longitud universal nunca es correcta. Un sitio de noticias necesita 20 palabras, un artículo de lectura extensa necesita 80 y un portafolio necesita solo 10. La buena noticia: usted puede establecer su propia longitud sin plugins, usando un único filtro en functions.php. Y sin poner en riesgo su sitio.
💡 Resumen rápido:
- Entender qué es un extracto y por qué 55 palabras no es una regla
- Cambiar la longitud mediante el filtro
excerpt_length(2 líneas de código) - Establecer longitudes diferentes para la página de inicio, categorías y tipos de contenido personalizados
- Elegir un plugin si el código no es una opción y conocer qué funciona en 2026
- Encontrar respuestas: extracto vs «Leer más», contenido duplicado, anuncios personalizados
Qué es un extracto y por qué importa su longitud
Un extracto es un resumen automático de la entrada que WordPress genera a partir de las primeras 55 palabras del texto. Aparece en los feeds del blog, en las páginas de categorías, en los resultados de búsqueda internos del sitio y en los feeds RSS. Si el autor no ha rellenado manualmente el campo «Extracto», el sistema automático entra en acción.
El número 55 proviene de las primeras versiones del CMS y no ha cambiado desde la versión 2.7. En aquel entonces, la entrada promedio tenía entre 300 y 400 palabras, y 55 era un compromiso razonable. Hoy, un artículo típico en un blog tecnológico supera las 1500 palabras, y un extracto corto pierde sentido: los lectores no entienden de qué trata la entrada y los motores de búsqueda ven texto fragmentado en los snippets.
Más allá de la estética, hay un aspecto técnico. Si un extracto se corta a mitad de una frase, Google puede usar ese fragmento en la meta description y su snippet en los resultados de búsqueda se verá descuidado. Un extracto limpio, significativo y de una longitud definida soluciona la situación.
Cambiar la longitud mediante el filtro excerpt_length
El método más fiable es usar el filtro incorporado excerpt_length. Existe en el núcleo de WordPress desde la versión 2.7.0 y no depende de temas ni plugins. Funciona en todos los lugares donde se llama a la función the_excerpt().
Este es el código mínimo para el archivo functions.php de su tema hijo:
1 /** 2 * Changes excerpt length to 30 words. 3 * 4 * @param int $length Current excerpt length. 5 * @return int New excerpt length. 6 */ 7 function mytheme_excerpt_length( $length ) { 8 return 30; 9 } 10 add_filter( 'excerpt_length', 'mytheme_excerpt_length', 999 );
Lo que importa aquí:
- La prioridad 999 es el detalle clave. WordPress aplica internamente su propio filtro con la prioridad predeterminada (10). Si usted no especifica una prioridad alta, su callback se ejecuta antes que el del sistema y se sobrescribe con 55. 999 garantiza que su filtro se ejecute en último lugar.
- Devuelva un entero, solo un entero. Una cadena
'30'provocará un PHP Warning en modo estricto. - Tema hijo: no edite el
functions.phpdel tema padre, los cambios se perderán al actualizar. Si no tiene un tema hijo, cree uno o use el plugin Code Snippets.
El código anterior cambia la longitud para todas las llamadas a the_excerpt() del sitio. El número 30 es un ejemplo; sustitúyalo por el suyo. Para un sitio de noticias, lo típico son entre 20 y 30 palabras; para un blog analítico, entre 50 y 70; para un portafolio, entre 10 y 15.
Si su sitio funciona sobre HTTPS y usa una versión moderna de PHP (8.0+), puede escribirlo aún más corto con una función flecha:
1 add_filter( 'excerpt_length', fn( $length ) => 40, 999 );
Pero para compatibilidad con proyectos más antiguos, quédese con la primera variante que usa una función con nombre.
Longitudes diferentes para páginas diferentes
Un número universal es conveniente, pero rara vez óptimo. En la página de inicio del blog necesita enganchar a los lectores con un resumen extendido (60-70 palabras), mientras que en un widget de «Entradas relacionadas» necesita una línea breve de 15-20 palabras. WordPress le permite establecer lógica condicional mediante funciones estándar de comprobación de contexto:
1 function mytheme_conditional_excerpt_length( $length ) { 2 if ( is_front_page() && is_home() ) { 3 return 70; // Blog home page 4 } 5 if ( is_category() || is_tag() ) { 6 return 45; // Category and tag pages 7 } 8 if ( is_search() ) { 9 return 30; // Search page 10 } 11 if ( is_page_template( 'template-portfolio.php' ) ) { 12 return 15; // Portfolio template 13 } 14 return 55; // Everything else 15 } 16 add_filter( 'excerpt_length', 'mytheme_conditional_excerpt_length', 999 );
Este enfoque cubre la gran mayoría de los escenarios reales. La misma lógica se aplica a tipos de contenido personalizados mediante is_singular( 'product' ) o is_post_type_archive( 'portfolio' ).
Un matiz importante: no todos los temas usan honestamente the_excerpt(). Algunos temas premium (especialmente los más antiguos con sus propios constructores de páginas) llaman a wp_trim_words() directamente o usan envoltorios personalizados. El filtro excerpt_length no funcionará en esos casos. Si nada cambió después de añadir el código, abra el functions.php del tema y busque llamadas alternativas; el problema suele resolverse reemplazando la función personalizada por la estándar the_excerpt().
Plugins: ¿valen la pena?
El mercado de plugins para la gestión de extractos es pequeño; la mayoría de las tareas se resuelven con el código de las secciones anteriores. El históricamente popular Advanced Excerpt (más de 100 000 instalaciones activas en el pasado) no se ha actualizado ni probado con las últimas versiones de WordPress desde 2024. En WP 6.8+ el plugin no funciona, y las reseñas de los usuarios lo confirman. Instalarlo en 2026 no tiene sentido.
Lo que realmente está disponible:
- Code Snippets es un plugin gratuito que le permite añadir código PHP en el panel de administración sin editar
functions.php. Funciona para cualquier fragmento de este artículo: pegue el filtroexcerpt_length, actívelo, listo. Ventaja: no teme a las actualizaciones del tema. Descarga: Code Snippets en WordPress.org. - WPCode es una herramienta más reciente con una interfaz visual para insertar fragmentos, lógica condicional y una biblioteca en la nube de recetas listas para usar. Si usted gestiona varios sitios y no quiere duplicar código, WPCode es más conveniente.
Ambos plugins no se especializan en extractos específicamente; resuelven una tarea más amplia. Pero para nuestro propósito esto es suficiente: usted añade el filtro una vez y se olvida del tema.

Si usted desea firmemente una interfaz gráfica específica para extractos (campos de entrada de longitud, casillas de verificación, selección de etiquetas HTML), a fecha de 2026 no existe ningún plugin independiente con mantenimiento activo y esa funcionalidad en el repositorio de WordPress.org. Todo lo que existía anteriormente está abandonado o entra en conflicto con PHP 8.2+. En esta situación, aprender el filtro excerpt_length es más fiable: dos líneas de código que no se romperán con ninguna actualización del CMS.
Antes de pasar a las preguntas frecuentes, aquí tiene un breve video que muestra el proceso de añadir código a un tema de WordPress:
⁉️🤔 Preguntas frecuentes
¿Cuál es la diferencia entre el extracto y la etiqueta «Leer más»?
La etiqueta
<!--more-->(botón «Leer más») corta la entrada donde usted la coloque y conserva todo el formato: imágenes, listas, encabezados. Un extracto es siempre texto plano sin etiquetas HTML (a menos que se use un plugin). «Leer más» controla la visualización en la propia página de la entrada; el extracto controla la visualización en las páginas de archivo. Son dos mecanismos diferentes que pueden funcionar simultáneamente.
¿El extracto crea contenido duplicado para el SEO?
No. Si el extracto es generado por la función
the_excerpt()en páginas de archivo, los motores de búsqueda lo ven comometa descriptionpara esas páginas, no como contenido duplicado. Es más, un extracto correctamente configurado ayuda a Google a formar un snippet relevante. Los problemas de duplicación surgen solo si usted inserta el texto completo de la entrada tanto en la página de archivo como en la individual sin una URL canónica.
¿Cómo establezco un texto de anuncio totalmente personalizado?
En el editor de entradas de WordPress existe un campo «Extracto». Si está rellenado, el sistema usa su texto en lugar del automático. En el editor clásico, active el campo mediante «Opciones de pantalla» en la parte superior derecha. En el editor de bloques (Gutenberg), use la pestaña de la barra lateral «Entrada» → «Extracto». Un extracto personalizado tiene prioridad sobre cualquier filtro
excerpt_length.
¿Puedo conservar el HTML en los extractos automáticos?
El filtro estándar
excerpt_lengthno gestiona las etiquetas;wp_trim_excerpt()siempre elimina el HTML. Para conservar el formato, necesita un enfoque independiente: o bien un plugin (pero ninguno funciona en 2026), o bien reemplazar el generador de extractos estándar mediante el filtrowp_trim_excerptcon su propio código. Esta es una técnica avanzada para desarrolladores.
¿Por qué el filtro no funciona con mi tema?
Tres razones típicas: 1) el tema no llama a
the_excerpt()sino que usa una función personalizada (revise las plantillas archive.php, category.php, search.php); 2) la prioridad del filtro es menor que la del manejador incorporado de WordPress (use999); 3) el archivofunctions.phpse editó en el tema padre en lugar del tema hijo y los cambios no se aplicaron.
Cambiar la longitud del extracto: ¿código o plugin?
El filtro excerpt_length cubre las necesidades de la gran mayoría de los sitios WordPress. Dos líneas en functions.php y la longitud del extracto se convierte exactamente en lo que usted desea: en la página de inicio, en las categorías, en la búsqueda, para los tipos de contenido personalizados. No hay necesidad de buscar plugins de extractos independientes en 2026; están abandonados o son redundantes.
Si usted nunca ha editado functions.php, empiece con Code Snippets. Es gratuito, seguro y no depende de las actualizaciones del tema. Una vez que se sienta cómodo, la lógica condicional con is_front_page() e is_category() le desbloqueará un nivel de control que ningún plugin de extractos con interfaz gráfica ha proporcionado jamás.



