blog webempresa

Qué son los filtros y cómo usar add_filter en WordPress

por | Sep 15, 2025 | Tutoriales WordPress Avanzados, WordPress

WordPress es una de las plataformas más flexibles para crear y gestionar sitios web. Parte de esa flexibilidad se debe a su sistema de hooks, que incluye acciones (actions) y filtros (filters).

Si alguna vez te has preguntado cómo cambiar el comportamiento por defecto de WordPress sin tocar los archivos “base” ni pelearte con miles líneas de código que no entiendes, estás en el artículo correcto.

Hoy te voy a hablar de los filtros y de la función add_filter, una herramienta poderosa pero muy poco aprovechada.

En este artículo te voy a hablar de:

  • Qué son los filtros y cómo funcionan los add_filter en WordPress
  • Cuándo y por qué deberías usar add_filter
  • ¿Cómo usar add_filter en WordPress?
  • Ejemplos prácticos (que podrás copiar y adaptar a tu web)
  • Casos de uso avanzados que te inspirarán a personalizar tu sitio web de forma avanzada
  • Vídeo tutorial sobre add_filter()
  • Herramientas y recursos recomendados para desarrolladores y usuarios intermedios

¿Qué son los filtros y cómo funcionan los add_filter en WordPress?

 

Los filtros en WordPress te permiten interceptar y modificar datos antes de que sean procesados o mostrados en pantalla.
Piensa en ellos como una capa intermedia donde puedes intervenir para cambiar un resultado sin tener que modificar directamente el código fuente de WordPress o de un plugin.

WordPress ejecuta filtros en puntos estratégicos: desde cambiar el contenido de un post, hasta modificar el correo de confirmación al registrar un nuevo usuario.

Técnicamente hablando, un filtro es una función de PHP que toma uno o más valores, los modifica, y los devuelve. La manera que tiene de hacerse es usando la función add_filter() (veremos más adelante cómo funciona).

Lo que los filtros permiten a los usuarios intermedios y desarrolladores es que puedan personalizar su sitio de forma precisa, limpia y sin riesgos de “romper” el sistema.

Además, el uso de filtros permite mantener un desarrollo sin redundancias y hasta permitir que el código en general sea más sostenible a largo plazo.

Filtros WordPress

¿Cuándo y por qué deberías usar add_filter?

Hay muchas razones para usar add_filter y aquí te resumo las principales:
 

  • Personalización sin modificar el core: Puedes alterar el comportamiento de WordPress sin editar archivos base u originales, lo que evita errores y facilita las actualizaciones.
  • Reutilización de código: Puedes centralizar cambios específicos y reutilizarlos en diferentes partes del proyecto.
  • Compatibilidad con actualizaciones: al usar add_filter desde un child theme o plugin personalizado, tus cambios no se pierden tras actualizar WordPress o el tema que estés utilizando.
  • Modularidad y limpieza: El uso de filtros en WordPress permite intervenir en funciones específicas sin modificar directamente el núcleo del sistema o los archivos de un plugin.
  • Potencia tu desarrollo profesional: Entender y aplicar filtros te convierte en un desarrollador o implementador de WordPress más completo.
  • Control fino del contenido y comportamiento: Puedes modificar pequeños detalles como la longitud del extracto, el formato de la fecha, el contenido de los widgets, etc.
  • Interoperabilidad con plugins y temas: Muchos plugins y temas bien desarrollados ofrecen filtros para que puedas extender su funcionalidad.
  • Seguridad y buenas prácticas: Los filtros te permiten intervenir en funciones clave sin tener que modificar directamente los archivos de otros desarrolladores, evitando vulnerabilidades.

¿Cómo usar add_filter en WordPress?

 

La función add_filter() es la forma en la que WordPress nos permite enganchar (aunque suene rara, uso esta palabra, porque en inglés es hook y me parece la más acertada) funciones personalizadas a un filtro específico. Su estructura básica es la siguiente:

add_filter( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 );

Aquí te explico qué es cada cosa:

  • $hook_name: el nombre del filtro al que quieres engancharte (ejemplo: ‘the_title’ o ‘wp_title’).
  • $callback: la función que defines para modificar el valor.
  • $priority (opcional): determina el orden en que se ejecutan las funciones si hay varias asociadas al mismo filtro. Por defecto es 10.
  • $accepted_args (opcional): indica cuántos argumentos acepta tu función.

 

Ejemplo básico

Supongamos que quieres personalizar el título de tu sitio antes de que se muestre en la pestaña del navegador. Puedes hacerlo con este código:

function mi_titulo_personalizado( $titulo ) {
    return 'Bienvenido a mi web - ' . $titulo;
}
add_filter( 'wp_title', 'mi_titulo_personalizado' );

Con esto, WordPress ejecutará tu función justo antes de mostrar el título, añadiendo el prefijo que hayas definido.

 

¿Dónde colocar los filtros?

 

Tienes varias opciones dependiendo de cómo tengas organizado tu proyecto web:

  • En el archivo functions.php de tu tema hijo.
  • En un plugin personalizado, ideal si no quieres que tu código dependa del tema.
  • Dentro de funciones anónimas si trabajas con PHP 7 o superior.
  • En archivos específicos si usas una arquitectura modular, como inc/filtros/titulos.php.

Un consejo: para mantener tu código limpio, puedes crear un archivo aparte llamado custom-filters.php y cargarlo desde functions.php con un require_once. Así mantienes tus filtros organizados y separados de otras funciones.

Ejemplos prácticos

 

Aquí tienes una serie de usos reales de add_filter() para mejorar y personalizar tu sitio WordPress sin complicarte demasiado.

Estos ejemplos muestran lo versátil que puede ser este sistema de hooks. 

 

Cambiar el texto de la pantalla de login

 

Imagina que quieres personalizar el mensaje que aparece en el formulario de acceso al panel de administración de WordPress. Puedes hacerlo interceptando cualquier cadena traducible mediante el filtro ‘gettext’

function cambiar_texto_login( $text ) {
    if ( strpos( $text, 'Nombre de usuario' ) !== false ) {
        $text = 'Usuario del sistema';
    }
    return $text;
}
add_filter( 'gettext', 'cambiar_texto_login' );

Este filtro escanea todas las cadenas traducibles del sistema y si encuentra una coincidencia la reemplaza.

 

Filtros WordPress - Cambiar texto pantalla login

Añadir contenido personalizado al final de cada entrada

 

Si quieres incluir automáticamente una nota o llamada a la acción al final de cada post, este filtro es perfecto:

function anadir_nota_al_final( $content ) {
    if ( is_single() ) {
        $content .= '<div class="post-footer">¿Te ha gustado? ¡Compártelo!</div>';
    }
    return $content;
}
add_filter( 'the_content', 'anadir_nota_al_final' );

El filtro ‘the_content’ se aplica justo antes de renderizar el contenido de una entrada. Así puedes insertar HTML extra sin editar el editor de bloques ni modificar cada post manualmente.

Filtros WordPress

Cambiar el texto del pie del panel de administración

Si gestionas sitios para clientes o quieres añadir una marca al backend, puedes personalizar el pie de página del panel de administración de WordPress con este código:

function pie_admin_personalizado() {
    return 'Sitio gestionado por tuempresa.com';
}
add_filter( 'admin_footer_text', 'pie_admin_personalizado' );

Este mensaje se mostrará en la parte inferior del panel de administración de WordPress, sustituyendo el clásico “Gracias por crear con WordPress” por el mensaje que quieras.

Filtros WordPress

Filtrar y suavizar comentarios ofensivos

¿No quieres moderar manualmente cada comentario, pero sí filtrar palabras inapropiadas? Este ejemplo las detecta y reemplaza:

function ocultar_comentarios_negativos( $comment_text ) {
    if ( strpos( $comment_text, 'odio' ) !== false ) {
        $comment_text = str_replace( 'odio', 'no me gusta', $comment_text );
    }
    return $comment_text;
}
add_filter( 'comment_text', 'ocultar_comentarios_negativos' );

Es una forma sencilla de aplicar filtros automáticos a los comentarios antes de que se muestren, sin censurar completamente ni eliminar la participación del usuario. 

Filtros WordPress

Casos de uso avanzados de add_filter()

A medida que dominas WordPress, empiezas a encontrar situaciones donde necesitas un mayor nivel de control sobre su comportamiento interno. Ahí es donde los filtros brillan con más fuerza.

A continuación te muestro ejemplos más avanzados, que van más allá de personalizar un título o un pie de página.

Estos filtros te permiten modificar resultados de búsqueda, correos automáticos, y hasta crear tus propios filtros para ser reutilizados.

 

Personalizar los resultados de búsqueda

 

Por defecto, WordPress busca solo en las entradas de tipo post. Pero si quieres que también se busquen páginas, productos u otros tipos de contenido personalizado (CPTs) y sin tener que utilizar un plugin extra, puedes interceptar la consulta global y modificarla antes de que se ejecute.

function filtrar_resultados_busqueda( $query ) {
    if ( $query->is_search && !is_admin() ) {
        $query->set( 'post_type', array( 'post', 'page' ) );
    }
    return $query;
}
add_filter( 'pre_get_posts', 'filtrar_resultados_busqueda' );

En este caso usamos el filtro pre_get_posts, que se ejecuta antes de que WordPress realice la consulta a la base de datos. Es ideal para ajustar cómo se comporta la búsqueda del sitio desde el frontend.

 

Modificar el correo que se envía al crear una cuenta nueva

 

Cuando un usuario se registra, WordPress envía un correo electrónico automático. ¿Y si quieres personalizar dicho mensaje para que tenga un tono más cercano o más alineado con tu marca?

function personalizar_correo_nuevo_usuario( $email ) {
    $email['subject'] = '¡Bienvenido a nuestra comunidad!';
    $email['message'] = 'Hola, gracias por registrarte en nuestra web. Ya puedes iniciar sesión.';
    return $email;
}
add_filter( 'wp_new_user_notification_email', 'personalizar_correo_nuevo_usuario' );

Este filtro te permite modificar el contenido del correo: tanto el asunto como el cuerpo del mensaje. Muy útil para proyectos con correos de bienvenida personalizados, membresías o academias online. 

Vídeo tutorial sobre add_filter()

Si prefieres aprender viendo y escuchando en lugar de solo leer, este vídeo tutorial es para ti. En él te explico de forma clara y paso a paso cómo funciona la función add_filter() en WordPress, con ejemplos reales, casos prácticos y consejos para aplicarlo en tu propio sitio.

Tanto si estás empezando a usar filtros como si ya tienes experiencia pero quieres consolidar conceptos, este vídeo te ayudará a comprender mejor cuándo, cómo y por qué usar add_filter() para personalizar WordPress de forma profesional y segura. ¡Dale al play y aprende en menos de 10 minutos!

Herramientas y recursos recomendados para desarrolladores y usuarios intermedios

Trabajar con filtros en WordPress se vuelve mucho más eficiente y seguro cuando cuentas con las herramientas adecuadas. Ya seas un desarrollador con experiencia o un usuario intermedio que quiere llevar su sitio al siguiente nivel, existen recursos que pueden ayudarte a entender mejor qué está pasando en tu instalación, depurar errores, encontrar hooks disponibles y escribir un código más limpio y mantenible.

También te recomiendo repasar guías como la de cómo mejorar el rendimiento de WordPress, especialmente si planeas añadir muchos filtros personalizados que puedan afectar la carga del sitio.

En esta sección te comparto algunas herramientas imprescindibles, sitios de referencia y buenas prácticas que te facilitarán la vida al trabajar con add_filter() y otros elementos avanzados de WordPress.

 

¿Cómo encontrar filtros disponibles?

 

No todos los filtros están documentados de forma clara, pero hay varias formas de encontrarlos y aprovechar su potencial:

  • Explorando el código fuente: busca apply_filters() en los archivos principales.
  • Usando el sitio oficial: developer.wordpress.org
  • Instalando el plugin Query Monitor: muestra qué filtros y acciones se están ejecutando en cada carga de página.
  • Revisando documentación de plugins y temas: muchos desarrolladores documentan sus hooks propios.

 

Recursos útiles

 

Conclusión

 

La función add_filter() es una de las herramientas más potentes del ecosistema WordPress. Permite personalizar, interceptar y extender casi cualquier parte del CMS, desde aspectos visuales hasta procesos internos.

Si estás cansado de depender de plugins innecesarios, quieres tener control fino sobre cómo funciona tu sitio y buscas un desarrollo sostenible y profesional, dominar los filtros es un paso clave.

Empieza con ejemplos sencillos, explora con herramientas como Query Monitor y no tengas miedo de crear tus propios filtros reutilizables.

¡Nos vemos en el siguiente artículo!

¿Te ha resultado útil este artículo?

Promo hosting Webempresa julio 2025