Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
WordPress Hooks

WordPress Hooks: Filters

En la entrada anterior vimos lo que eran los Actions en WordPress. En esta vamos a ver el otro tipo de hook: los filters.

Los Filters o filtros son un concepto parecido a los Actions. La diferencia es que su propósito es modificar la salida de información antes de que sea grabada en base de datos o mostrada en pantalla. Es decir, es una función a la cual podemos pasar información con el objetivo de manipular textos y contenidos antes de ser utilizados, por ejemplo modificar el título de un post antes de ser mostrado en pantalla.

Dicho de otro modo: Tengo esta información, modifícala por esta otra.

Si aún no ha quedado claro, vamos a verlo mejor con un par de ejemplos. El primero utilizando un filtro típico de WordPress, the_content, y en el segundo veremos cómo crear nuestros propios filtros en un plugin o tema.

 

Alterando el contenido de un post mediante el filter the_content

Para utilizar los filtros deberemos utilizar la función add_filter() de WordPress:

Donde

  • $tag (requerido): El nombre del filtro sobre el que queremos actuar.
  • $function_to_add (requerido): La función que se ejecutará cuando el filtro se aplique.
  • $priority (opcional): Prioridad de ejecución respecto a otras funciones que pueden también engancharse al filtro. El valor por defecto es 10. Valores bajos corresponden a mayor prioridad de ejecución.
  • $accepted_args (opcional): El número de argumentos que la función acepta. Por defecto 1.

 

WordPress dispone de multitud de filtros, puedes ver la relación de todos ellos aquí. Uno de los que más se utilizan es el filtro the_content. Éste filtro se ejecuta antes de mostrar el contenido de un post en pantalla. Se utiliza mucho para añadir información adicional como publicidad, scripts, posts relacionados, etc… al final del contenido

Como puede verse, a la variable $content, que tiene el contenido de nuestro post, concatenamos el texto Escrito por Pablo López. Retornamos la variable $content modificada por nosotros. Ésto es importante, a diferencia de los Actions, un Filter siempre debe retornar un valor.

 

Creando nuestros propios Filters

Crear filtros en nuestros temas y/o plugins es una buena práctica, ya que nos dará flexibilidad de cara al futuro para hacer ciertas modificaciones. Imaginemos que estamos haciendo un plugin que tiene un formulario para recoger una serie de datos.

Entre estos datos pintamos un select con rangos de edad: 0 – 10, 11 – 20, 21 – 30, 31 – 40, 41 – 50, +50. Si queremos dejar una puerta abierta para nosotros o para que un tercero pueda modificar estos valores, crearemos un filter con la función apply_filters().

 

 

La primera función get_age_range() es la que pinta el select de rango de edades. Como puede verse hemos creado el filter age_range con la función apply_filters(). En este ejemplo tenemos otra función add_new_age_range() que elimina el último rango de edad (+50) y añade dos tramos más. Esta función es a la que llamaremos desde add_filter() para modificar el contenido del select de nuestro tema o plugin.

De este modo dejamos la puerta abierta para poder actuar sobre el retorno en pantalla de una función a través de un filtro.

Puede que también te interese

WP-CLI Parte 1, instalación y primeros pasos
WP-CLI Parte 1, instalación y primeros pasos
Con esta entrada comienzo una serie de artículos sobre WP-CLI (WordPress Command Line Interface). WP-CLI es una herramienta que nos permite realizar acciones como instalar…
Cómo mover los scripts al footer en WordPress
Cómo mover los scripts al footer en WordPress
En esta entrada vamos a ver cómo mover o cargar los archivos JS en el footer de WordPress. Si miramos el código fuente de nuestro sitio…
Sanitizando: cómo validar y escapar datos en WordPress
Sanitizando: cómo validar y escapar datos en WordPress
En éste artículo vamos a aprender a hacer un tratamiento de datos correcto en WordPress. Éste punto es imprescindible para cualquier desarrollo a medida que…
Cómo crear una página de error de acceso a base de datos personalizada
Cómo crear una página de error de acceso a base de datos personalizada
En alguna ocasión nos podemos encontrar con un error de acceso a la base de datos por diversos motivos, y en estos casos nos aparece…