Como usar Filtros y Acciones en WordPress
En este pequeño artículo les voy a intentar explicar para que sirven los filtros y acciones en wordpress y en que se diferencian.
Para empezar decir que NUNCA debemos cambiar el core de WordPress, por lo que nuestros desarrollos se deben centrar siempre dentro de la carpeta wp-content/, además de algún archivo suelto de nuestro root como pueden ser .htaccess y wp-config.php
Por esto mismo existen los filtros y acciones, ya que gracias a ellos vamos a poder “cambiar cosas” o agregar funcionalidades sin tocar el core.
Filtros en WordPress
Veamos esta función inventada como ejemplo:
function imprimir_variable(){
$mivariable = "Hola soy una variable default del core de WordPress";
echo apply_filters('imprimir_variable' ,$mivariable);
}
//Imprime "Hola soy una variable default del core de WordPress"
Por defecto si en nuestro theme llamamos a la función imprimir_variable(); por defecto imprime lo mostrado arriba.
Pero si queremos cambiar eso sin tocar la funcíon poder aprovechar apply_filters, que como su nombre indica se encarga de aplicar un filtro.
Para ello en nuestro theme usaremos add_filter. Por ejemplo hariamos lo siguiente:
add_filter('imprimir_variable','nueva_imprimir_variable');
function nueva_imprimir_variable(){
return 'Esto esta genial!!!';
}
Añadiendo eso a nuestro functions.php, si llamamos a la función :
//Una vez añadido el filtro imprimir_variable(); //Imprime Esto esta genial!!!
Como ven es muy útil. Veamos un ejemplo real. Si quieren agregar un link o cualquier cosa al final del post usaríamos el siguiente filtro:
function agregar_mi_link($content) {
return $content.'<br>Un montón de tutoriales más en <a href="http://www.masquewordpress.com">Más que WordPress</a>';
}
add_filter('the_content', 'agregar_mi_link');
Para un listado de filtros visiten el codex
Acciones
Las acciones son muy parecidas a los filtros, solo que en lugar de filtrar , añadimos una funcionalidad o función a otras.
Si volvemos a nuestra función de ejemplo y la modificamos de la siguiente manera podremos añadir acciones a ella:
function imprimir_variable(){
global $post
$mivariable = "Hola soy una variable default del core de WordPress";
do_action('mi_accion' ,$post);
echo apply_filters('imprimir_variable' ,$mivariable);
}
//Imprime "Hola soy una variable default del core de WordPress"
Como ven hemos añadido do_action, que es donde vamos a “enganchar” nuestras acciones.
Entonces por ejemplo si hacemos:
add_action('mi_accion' ,'actualizar_meta');
function actualizar_meta($post =""){
update_post_meta($post->ID, 'imprimir_variable', 'Si!!');
}
Al añadir esta acción cada vez que imprimer_variable sea llamada , se actualiza el post_meta con el valor Si!!. Este ejemplo es solo demostrativo y no tiene sentido alguno. Hay miles de ejemplo en la vida real, por ejemplo en el últimos post agregamos un boton al admin bar mediante una acción.
El listado de acciones también lo encontramos en el codex
Saludos!
Acerca del autor
by Damián Logghe
Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. Wordpress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.







Últimos Comentarios