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.Estoy especializado en grandes instalaciones, aunque tengo clientes de todo tipo.

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.