Acho que o último lançamento importante garante uma nova resposta a essa pergunta, considerando a popularidade dessa pergunta.
Desde o WordPress 4.7 (lançado em dezembro de 2016), é possível adicionar ações em massa personalizadas sem usar JavaScript.
O filtro bulk_actions-{$screen}
(por exemplo, bulk_actions-edit-page
para a visão geral das páginas) agora permite que você adicione ações em massa personalizadas. Além disso, uma nova ação chamada handle_bulk_actions-{$screen}
(por exemplo, handle_bulk_actions-edit-page
) permite que você lide com a execução da ação.
Isso tudo é explicado muito bem em esta postagem no blog . Por exemplo, digamos que queremos adicionar uma ação em massa para enviar por e-mail os títulos dos itens selecionados na visão geral das páginas. Nós poderíamos fazer assim:
Para um pequeno exemplo, onde adicionamos uma ação à lista suspensa de ações em massa e adicionamos uma função de manipulador a ela.
Adicionando a ação em massa ao menu suspenso:
function wpse29822_page_bulk_actions( $actions ) {
// Add custom bulk action
$actions['my-action-handle'] = __( 'My Custom Bulk Action' );
return $actions;
}
add_action( 'bulk_actions-edit-page', 'wpse29822_page_bulk_actions' );
Adicionando um manipulador para a ação em massa:
function wpse29822_page_bulk_actions_handle( $redirect_to, $doaction, $post_ids ) {
// Check whether action that user wants to perform is our custom action
if ( $doaction == 'my-action-handle' ) {
// Do stuff
}
return $redirect_to;
}
add_action( 'handle_bulk_actions-edit-page', 'wpse29822_page_bulk_actions_handle', 10, 3 );