WordPress Directo
  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting
No Result
View All Result
WordPress Directo
  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting
No Result
View All Result
WordPress Directo
No Result
View All Result

Cómo crear tus propias acciones en lote mediante código

Jorge López by Jorge López
26 julio 2017
in Tutoriales
Reading Time: 5 mins read
0

En el backoffice de WordPress podemos ver distintas páginas y listados de WordPress: posts, páginas, medios y otros tipos de posts que tengas preestablecidos en tu instalación. En dichas páginas y listados existe la posibilidad de realizar acciones en lote, es decir, acciones que afecten a varios registros. Cada una de esas páginas y listados cuenta con sus propias acciones en lote. Por eso, en este artículo, te mostraré cómo crear tus propias acciones en lote. Ojo, para seguir este tutorial debes tener nociones sobre desarrollo web puesto que utilizaremos código para modificar los archivos de WordPress.

Crear tus propias acciones en lote mediante código

acciones en lote

El hook bulk-actions

En versiones anteriores de WordPress, el hecho de crear acciones en lote personalizadas en los listados del admin de WordPress era una tarea casi titánica. A partir de WordPress 4.7 eso cambió ya que añadieron un nuevo hook que lo hacía posible.

Artículos relacionados

Cómo añadir cabeceras de respuesta HTTP seguras en WordPress

3 julio 2018

Cómo crear nuevas miniaturas en WordPress

13 marzo 2017

10 trucos que puedes realizar con el fichero wp-config.php

4 febrero 2018

Cómo limpiar la caché del navegador y de los distintos plugins de WordPress

28 junio 2021
add_action('bulk_actions-{screen_id}', 'mi_accion_en_lote');

Como en el ejemplo utilizaremos la página de edición de posts, nombramos los parámetros en consecuencia:

add_filter( 'bulk_actions-edit-post', 'registro_acciones_en_lote' );

Esta sería la función a la que hace referencia el hook:

function registro_acciones_en_lote($bulk_actions) {
  $bulk_actions['primera_accion'] = __( 'Mi primera accion en lote', 'domain');
  $bulk_actions['segunda_accion'] = __( 'Mi segunda accion en lote', 'domain');
  return $bulk_actions;
}

Como ves, puedes definir más de una acción en lote en cada función agregando simplemente más elementos al array $bulk_actions. Pero ojo, debes tener mucho cuidado a la hora de ponerle nombre a la clave de cada uno de dichos elementos y, logicamente, al texto que se va mostrar.

Los IDs de pantalla

Para referirnos a cada una de las páginas de WordPress, utilizamos ids de pantalla. En el ejemplo anterior, hemos utilizado bulk_actions-edit-post, siendo edit-post el ID de pantalla.

Puedes consultar el ID de pantalla mediante este código:

$screen = get_current_screen();
var_dump($screen);

Pero si alguna vez tienes alguna duda, aquí te dejamos los IDs de pantalla de algunas páginas del admin de WordPress:

Página ID de pantalla Archivo
Biblioteca de medios upload upload.php
Comentarios edit-comments edit-comments.php
Tags edit-post_tag edit-tags.php
Plugins plugins plugins.php
Usuarios users users.php
Posts edit-post edit.php
Páginas edit-page edit.php

La función callback

Esta sería la función callback que utilizaremos en este ejemplo:

 add_filter( 'handle_bulk_actions-edit-post', 'acciones_en_lote_nuevas', 10, 3 );
 
 function acciones_en_lote_nuevas( $redirect_to, $action_name, $post_ids ) { 
 if ( 'primera_accion' === $action_name ) { 
 foreach ( $post_ids as $post_id ) { 
 $post = get_post($post_id); 
 // tu codigo 
 } 
 $redirect_to = add_query_arg( 'bulk_posts_processed', count( $post_ids ), $redirect_to ); 
 return $redirect_to; 
 } 
 
 elseif ( 'segunda_accion' === $action_name ) { 
 foreach ( $post_ids as $post_id ) { 
 $post_meta = get_post_meta( $post_id ); 
 // tu codigo 
 } 
 $redirect_to = add_query_arg( 'other_bulk_posts_precessed', count( $post_ids ), $redirect_to );
 return $redirect_to; 
 } 
 
 else 
 return $redirect_to; }

Como he mencionado antes, puedes definir más de una acción en lote personalizada, pero solo una función callback. Por lo tanto, lo primero que debes hacer en la callback es comprobar qué acción en lote se ha seleccionado (líneas 4 y 13).

Después, los posts son procesados en el bucle foreach (líneas 5 y 14). En este bucle puedes cargar el post con get_post o los meta con get_post_meta() y procesar los datos. A continuación, los datos modificados se escriben de nuevo en la base de datos con wp_update_post() o update_post_meta().

La variable $redirect_to (líneas 9 y 18) se utiliza para definir la URL a la que redirigiremos al usuario una vez se haya completado la acción en lote. En nuestro caso la hemos definido a …/wp-admin/edit.php?paged=1. En realidad no modificaremos la dirección, sino que la utilizaremos para pasar una variable mediante GET.

Con la función add_query_arg() añadimos un parametro a la URL que especifica el número de posts procesados: /wp-admin/edit.php?paged=1&bulk_posts_processed=1.

Mostrar el mensaje de OK

Despues de procesar todos los posts, puedes mostrar un mensaje de OK al usuario mediante la acción admin_notices(). El segundo parámetro de la función debe contener la cadena de texto que hemos definido en nuestro filtro bulk_actions-{id-de-pantalla}:

function my_bulk_action_admin_notice() { 
  if ( ! empty( $_REQUEST['bulk_posts_processed'] ) ) { 
    $posts_count = intval( $_REQUEST['bulk_posts_processed'] ); printf( '
' . _n( 'Procesado %s post.', 'Procesados %s posts.', $posts_count, 'domain' ) . ' ', $posts_count ); 
  } 
}

Y hasta aquí nuestro artículo en el que te enseñábamos cómo crear tus propias acciones en lote mediante código. Espero que te haya gustado y, si te ha resultado útil, no dudes en compartirlo en redes sociales. El artículo ha sido extraído del original de WPEngineer y el icono de la imagen destacada es obra de Victor Choi. ¡Nos leemos!

Tags: accionesacciones en lotecrear acciones en lotecrear acciones en lote en WordPresslote
ShareTweetSendSharePin
Jorge López

Jorge López

Soy programador web y me gusta mucho el diseño gráfico, la fotografía y todo lo relacionado con las nuevas tecnologías. En mis ratos libres me encanta dibujar y escuchar música. ¡No podría vivir sin ella! Aparte soy un friki de las series...las devoro

Te puede interesar...

Tutoriales

WordPress: Cambia tu URL directamente desde la base de datos

18 diciembre 2024

La gestión eficaz de un sitio web en WordPress a menudo requiere adaptaciones técnicas,...

General

Protección avanzada de tu WordPress: Cómo blindar /wp-admin sin bloquear funciones necesarias

18 diciembre 2024

En el ámbito de la gestión de sitios web basados en WordPress, la seguridad...

Tutoriales

Cómo crear una tabla de contenidos en tus publicaciones con Rank Math

11 enero 2023

En muchas ocasiones, leer un artículo demasiado largo puede provocar que te aburras de...

Tutoriales

Cómo instalar Perl en un servidor desplegado en Clouding

20 julio 2021

Un buen desarrollador necesita contar con las herramientas, servicios y tecnologías adecuadas a sus...

Deja una respuesta Cancelar la respuesta

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

No Result
View All Result
Plugin Imagify, optimizar imágenes
wordpress hosting NVME
Elegant Themes WordPress
elementor editor plugin




Últimos artículos

Cómo mostrar los posts de tu WordPress en formato tabla

3 mayo 2018

Hosting Compartido vs Hosting Dedicado

12 diciembre 2017

Mostrar el gravatar del autor en bucles

15 febrero 2012

White Paper que te ayuda en la actualización de tu WordPress

30 octubre 2012

Razones poderosas para abrir tu tienda online con WordPress

19 octubre 2019
WordPress Directo

WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

Menu

  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting

Información

WPDirecto es un medio de Medios y Redes:
  • Artículos patrocinados
  • Servicio de diseño web
  • Contacto
  • Acerca de MyR
  • Política de privacidad y cookies
  • Aviso Legal

© 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.

No Result
View All Result
  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting

© 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.