✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Tutorial: Cómo agregar una acción masiva personalizada en el administrador de WordPress

14

Encima de la mayoría de las tablas de elementos en el administrador de WordPress (por ejemplo, publicaciones, páginas, comentarios, complementos y usuarios), encontrará la funcionalidad de WordPress para acciones masivas. Las acciones masivas le permiten marcar múltiples elementos, elegir una acción y hacer que esa acción se realice para todos los elementos a la vez. En esta publicación, veremos cómo agregar nuestras propias acciones masivas personalizadas al administrador de WordPress.

Agregar una acción masiva personalizada se ha vuelto mucho más fácil en las versiones recientes de WordPress (desde 4.7). Hay un filtro para las opciones disponibles en el menú desplegable; otro filtro para lo que debe hacer cuando se elige su opción, y otro gancho para mostrar opcionalmente un aviso de administrador. Repasemos cada uno de estos.

Agregar una acción masiva personalizada en el menú desplegable

Comencemos agregando nuestra opción masiva personalizada al menú desplegable de acciones masivas. Para esto, usamos el filtro bulk_actions_<screen>, donde reemplaza con la pantalla de administración a la que desea que se agregue su opción. Aquí hay una descripción completa de las posibles opciones para la pantalla:

  • bulk_actions-edit-post: Pantalla de edición de tipo de publicación ‘publicación’
  • bulk_actions-edit-page: Pantalla de edición de tipo de publicación ‘página’
  • bulk_actions-edit-<post-type-name>: Pantalla de edición de tipo de publicación personalizada
  • bulk_actions-edit-<custom-taxonomy>: Pantalla de edición de taxonomía personalizada
  • bulk_actions-edit-comments: pantalla de lista de comentarios
  • bulk_actions-plugins: Pantalla de lista de complementos
  • bulk_actions-users: pantalla de lista de usuarios
  • bulk_actions-upload: Lista de la biblioteca de medios (solo funciona en la vista de lista, no en la vista de cuadrícula)

El filtro se aplica a una matriz con pares clave-valor; donde las claves son una clave única para las acciones y los valores son la etiqueta que aparece en el menú desplegable.

Veamos un ejemplo. Quiero crear una acción masiva para configurar las publicaciones como publicadas.

add_filter('bulk_actions-edit-post', function($bulk_actions) { $bulk_actions['change-to-published'] = __('Change to published', 'txtdomain'); return $bulk_actions; });

Si guarda y actualiza la pantalla de edición de publicaciones, debería ver su opción en el menú desplegable.

Tutorial: Cómo agregar una acción masiva personalizada en el administrador de WordPress

A partir de ahora, nuestra acción masiva personalizada está funcionando absolutamente. Ese es el siguiente paso.

Hacer que nuestra acción masiva personalizada haga algo

Para activar algo al elegir nuestra opción recién agregada en el dropwon, nos conectamos al filtro handle_bulk_actions-<screen>. Consulte la descripción general anterior para conocer los posibles valores de pantalla. Obviamente, su gancho de control debe ser la misma pantalla que la pantalla en la que agregó la acción masiva en el primer paso.

Tienes tres argumentos posibles en este filtro. El primero, el que devuelve, es en realidad una URL a la que WordPress debería redirigir después de que haya terminado con su acción masiva. El segundo argumento es el nombre de la acción que se eligió en el menú desplegable. Y el tercero es una matriz de todos los ID de elementos que se verificaron para la acción masiva. Estos son los elementos sobre los que debemos aplicar nuestra acción.

Veamos lo que hace el código anterior paso a paso. Primero, debemos verificar si la acción masiva realizada fue realmente nuestra acción personalizada; change-to-published. Y luego depende de nosotros hacer lo que queramos con todas las identificaciones.

El código anterior recorre todas las ID de publicación y actúa wp_update_post()en cada una para cambiar su estado de publicación a publicado. (Si desea que esto sea eficiente, puede considerar actualizar solo aquellos que aún no están publicados).

Una vez que hayamos terminado de realizar nuestra acción en los elementos seleccionados, debemos crear una URL para redirigir después de que WordPress haya terminado. Agregamos un argumento personalizado a la URL de redireccionamiento proporcionada. Esto es opcional pero necesario si queremos mostrar un aviso de administrador. Podemos agregar lo que quieras. Pero en el ejemplo anterior, simplemente estamos agregando un nuevo argumento de consulta con add_query_arg()la configuración ‘ changed-to-published‘ para la cantidad de ID de publicación que se vieron afectadas. Esta es información útil para un aviso.

Mostrar un aviso después de que se haya realizado nuestra acción masiva personalizada

Si realiza nuestra acción masiva personalizada ahora, notará que después de que WordPress haya completado la acción masiva, vuelve a cargar la página con lo siguiente en la URL: "wp-admin/edit.php?changed-to-published=2". "2" es el número de publicaciones en las que aplicamos nuestra acción. Esto nos permite agregar un aviso de administrador personalizado que se activa si se establece ‘cambiado a publicado’.

Para mostrar los avisos de administración, podemos usar la acción admin_notices. Verificamos la variable global de PHP $_REQUEST, que se completa con los valores enviados del formulario si ‘ changed-to-published‘ existe. Si es así, eso significa que nuestra acción masiva personalizada acaba de realizarse. Luego mostraremos un texto que incluye el número de publicaciones aplicadas.

¡Y eso es!

Tutorial: Cómo agregar una acción masiva personalizada en el administrador de WordPress

Otros usos de la acción masiva personalizada

Tenga en cuenta que en el handle_bulk_actions-<screen>gancho puede hacer básicamente lo que quiera con los elementos seleccionados. Puede actualizar la meta de publicación personalizada, cambiar los roles de los usuarios, enviar un correo electrónico o publicar una solicitud HTTP en alguna aplicación de terceros.

Por ejemplo; si desea una acción masiva para actualizar una meta de publicación personalizada que informe si las publicaciones están verificadas o no, use una acción masiva personalizada con la tecla ‘ mark-as-verified‘:

add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) { if ($action == 'mark-as-verified') { foreach ($post_ids as $post_id) { update_post_meta($post_id, 'verified', '1'); } $redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url); } return $redirect_url; }, 10, 3);

Combine lo anterior con una columna personalizada que muestre el valor de ‘verificado’ en las listas de publicaciones, como hicimos en esta publicación, y se vuelve muy útil.

Tutorial: Cómo agregar una acción masiva personalizada en el administrador de WordPress

Fuente de grabación: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More