Me gustaría cambiar el mundo, pero no encuentro el código fuente

Cómo crear una acción en lote (Bulk Action) en WordPress

Añadir acciones en lote a WordPress

Antiguamente, no había en WordPress una forma “sencilla” de añadir acciones en lote en las páginas de listado de entradas, páginas o Custom Post Type. Lo que se debía hacer era añadir estas acciones mediante jQuery, que básicamente se sobrescribía el desplegable de acciones y se añadían las nuevas acciones.

Desde hace algunas versiones, es mucho más sencillo añadir nuevas acciones mediante dos filtros.

Los filters de WordPress que deberemos utilizar son:

  • bulk_actions-edit-{$post}
  • handle_bulk_actions-edit-{$post}

Mediante el filtro bulk_actions-edit-{$post}, añadiremos las acciones, y mediante handle_bulk_actions-edit-{$post} realizaremos las acciones.

$post lo deberemos sustituir por el nombre del Post Type (ya sea estándar o personalizado), es decir, si por ejemplo quisiéramos añadir una acción en lote (bulk action) al listado de entradas, deberíamos utilizar el filtro bulk_actions-edit-post, si fuera en las páginas, bulk_actions-edit-page y si por ejemplo fuera en el listado de pedidos de WooCommerce utilizaríamos bulk_actions-edit-shop_order

Aquí tenéis un ejemplo de cómo quedaría al final sin lo que realizan las acciones (lógicamente), eso os lo dejo para vosotros.

Fijaos que en el handler, siempre devolvemos $redirect_to. El redirect se formatea de forma automática mediante el add_query_arg(), que se incluye en nombre de la acción, la cantidad de “post” que se han enviado a realizar la acción, y el $redirect_to que es pasado cuando se solicita realizar la acción bulk.

Cómo podéis ver, ahora hay una forma en el core de WordPress para realizar acciones en lote y ya no es necesario realizar “hacks” mediante jQuery para añadirlas.

José Conti

Pertenezco al equipo de traducción oficial de WordPress España, soy amante de WordPress por su sencillez de uso y potencial. Trabajo con WordPress desde finales de 2004, principios de 2005. Realizo mantenimientos de webs realizadas con WordPress y WooCommerce entre otras muchas cosas.

View more posts from this author

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.