考虑到这个问题的普遍性,我认为最新的主要版本保证了这个问题有一个新的答案。
Since WordPress 4.7 (released December 2016) it is possible to add custom bulk actions without using JavaScript.
过滤器
bulk_actions-{$screen}
(例如。
bulk_actions-edit-page
对于页面概述),现在允许您添加自定义批量操作。此外,一项新的行动称为
handle_bulk_actions-{$screen}
(例如。
handle_bulk_actions-edit-page
) 允许您处理操作的执行。
这些都解释得很清楚this blog post.例如,假设我们想添加一个批量操作,以通过电子邮件发送页面概述上所选项目的标题。我们可以这样做:
举个小例子,我们在批量操作下拉列表中添加一个操作,并向其添加一个处理函数。
将批量操作添加到下拉列表中:
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\' );
为批量操作添加处理程序:
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 );