Advertisement
  1. Code
  2. WordPress

50 filtros de WordPress: Una introducción a los filtros

by
Difficulty:BeginnerLength:ShortLanguages:
This post is part of a series called 50 Filters of WordPress.
50 Filters of WordPress: The First 10 Filters

Spanish (Español) translation by Trix (you can also view the original English article)

WordPress es una increíble plataforma y el gestor de contenidos más popular del mundo. Esta popularidad se debe a su gran extensibilidad. En esta serie de artículos vamos a aprender sobre filtros – una de las mejores formas en las que podemos extender WordPress.

La base de esta característica reside en los ganchos ("hooks" en inglés) – los filtros y las acciones de WordPress. Sin ellos, no seríamos capaces de beneficiarnos de toda la capacidad de extensión que nos ofrece WordPress.

En esta serie, vamos a aprender sobre los filtros, una de las mejores formas que tenemos para extender WordPress. Será una serie dividida en siete partes que se centra en lo siguiente:

  • La definición de filtros de WordPress y una introducción a cómo podemos usarlos (esto lo haremos en este mismo artículo).
  • Cinco artículos en el que veremos 50 filtros de WordPress (10 en cada uno) con ejemplos.
  • Y un artículo de “recapitulación”, en él resumiremos lo explicado sobre filtros y recopilaremos los 50 ejemplos que hayamos visto.

Existen, literalmente, cientos de filtros de WordPress en el núcleo y estos 50 ejemplos sólo representan una pequeña muestra (alrededor de un 10%), así que, si te gusta la serie y sugieres nuevos ejemplos sobre filtros, es posible que la ampliemos.

En cualquier caso, ha llegado el momento empezar nuestra introducción a los filtros de Wordpress. ¡Empecemos!

¿Qué es un filtro WordPress?

En el Codex, los filtros están definidos de la siguiente forma:

Los filtros son funciones a través de las cuales WordPress envía información, en ciertos puntos de ejecución, justo antes de realizar alguna acción con la información. Los filtros se sitúan entre la base de datos y el navegador, y entre el navegador y la base de datos; la mayoría de los datos de entrada y de salida de WordPress pasan como mínimo a través de un filtro. WordPress realiza algunas filtraciones por defecto, y tu plugin puede añadir su propio filtrado.

Así que, en esencia, los filtros son funciones que hacen cosas con datos de tu sitio web antes de que WordPress los genere. Un filtro es uno de los dos tipos de ganchos de WordPress – el otro tipo son las acciones, algo que veremos en otros artículo de esta serie.

Aunque parece un tema complejo, los filtros (y las acciones) son realmente muy fáciles de entender. Yo también me sentía intimidado la primera vez que me tope con ellos, pero cuando comprobé lo sencillos que eran, descubrí cientos de filtros y acciones consultando el Codex o estudiando el código del núcleo.

Definitivamente, tú también deberías aprender sobre algunos de los cientos de filtros existentes. Pero primero, tienes que entender cómo se usan.

Usar filtros en WordPress

Usar filtros de WordPress es, como ya he dicho, bastante fácil. Solo es necesario conocer algunas funciones básicas y para qué sirve cada filtro. (Para ser honesto, lo más difícil es, como te puedes imaginar, aprender todos los filtros, no puedes aprenderte cada uno de ellos de un tirón – irás aprendiéndolos conforme los vayas necesitando).

En esta sección, veremos cuatro cosas:

  1. Crear una función de filtro,
  2. Engancharla a un filtro,
  3. Eliminar una función de un filtro,
  4. Crear nuestros propios filtros.

Crear una función para un filtro y engancharla a un filtro

Para jugar con los datos que se pasan desde el filtro, debes crear una función que defina cómo se jugará con los datos, y enlazarlos al filtro.

Imagina, por ejemplo, que estamos creando un plugin para “eliminar las vocales en los títulos de las entradas”, “engancharías esta función (que elimina las vocales) al filtro de los títulos de las entradas”.

¿Complicado? No realmente. En el siguiente ejemplo, escribiremos el código de una función que elimina las vocales de cualquier cosa:

La función usa la cadena $title, elimina las vocales y la devuelve. Muy sencillo ¿no? Ahora, vayamos un poco más allá y enganchémosla a un filtro:

¿Has observado la nueva función? Echemos un vistazo rápido a add_filter():

  • $tag (requerido) – El nombre del filtro.
  • $function_to_add (requerido) – El nombre de la función que debes enganchar al filtro.
  • $priority (opcional) – Una cifra para indicar cuando se debe ejecutar nuestra función. El valor predeterminado es 10: La función se ejecutará antes si indicas un valor inferior y más tarde si es superior.
  • $accepted_args (opcional) – Una cifra que establece el número de argumentos aceptados por el filtro. El valor predeterminado es 1.

Eliminar el filtro

También, podemos eliminar funciones vinculadas a filtros. Para hacerlo usamos una sencilla función llamada remove_filter(). Veamos cómo funciona:

Los parámetros son casi los mismos que para add_filter():

  • $tag (requerido) – El nombre del filtro.
  • $function_to_remove (requerido) – El nombre de la función a eliminar.
  • $priority (opcional) – La prioridad de la función (tal y como lo definimos cuando enganchamos la función la primera vez).

También hay otra función llamada remove_all_filters() que tiene solo dos parámetros ($tag y $priority) en donde indicas el nombre del filtro y su prioridad. Tal y como su nombre indica, elimina todas las funciones enganchadas al filtro.

Crear tus propios filtros

¿Te estás preguntando cómo se crean estos filtros? Existe una función especial llamada apply_filters() que está presente en todo el código del núcleo para crear cientos de filtros. Por supuesto, también se puede usar fuera del núcleo, lo que significa que podemos crear también filtros dentro de nuestros plugins y temas.

Veamos cómo funciona:

  • $tag (requerido) – El nombre de tu gancho de filtro.
  • $value (requerido) – El valor a modificar por las funciones del filtro enganchadas a través de add_filter().
  • $var1, $var2 y así sucesivamente (opcional): – Parámetros de tu filtro (puedes usar tantos como quieras). Las funciones de los filtros pueden usar estos parámetros pero no pueden ser devueltos por las funciones.

Pongamos un ejemplo: Imagina que escribes una función que solo devuelve una conocida cita de Peter Griffin:

Si quieres permitir que la gente filtre esta cita (y no tocar el código de tu plugin), tienes que usar la función apply_filters()  de la siguiente forma: De esta forma, otro desarrollador que use tu plugin podrá jugar con los datos de tu función de la siguiente forma:

Ahora, cada vez que se ejecute la función peter_griffin_quote(), la cita de Peter cambiará ligeramente sin que el desarrollador edite el archivo de tu plugin. ¡Qué maravilla!

Si necesitas información adicional sobre este tema, consulta el excelente tutorial de Pippin Williamson “Escribir Plugins extensibles con acciones y filtros" disponible en Tuts+. En este tutorial, podrás aprender a crear filtros y acciones para tu plugin o tu tema.

Conclusión

Cuanto más trabajes con ellos, más divertido te resultará. Existen cientos de filtros, y descubrir cada uno de ellos hará que estés cada vez más cerca de convertirte en un gurú de WordPress. En la siguiente parte de esta serie, conoceremos 10 filtros de WordPress:

  1. login_errors
  2. comment_post_redirect
  3. allowed_redirect_hosts
  4. body_class
  5. locale
  6. sanitize_user
  7. the_content
  8. the_password_form
  9. the_terms
  10. wp_mail_from

Estoy realmente emocionado con esta serie y espero que la disfrutes tanto como yo. Si crees que puedes ayudarme con estos tutoriales sugiriéndome más filtros o ejemplos, no dudes en hacerlo a través de la sección de comentarios que viene a continuación.

Y si te ha gustado lo que acabas de leer en este artículo, ¡no olvides compartirlo! ¡Nos vemos en el próximo tutorial!

¡Nos vemos en el próximo tutorial!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.