如何在Wordpress中处理WP_List_Table类之外的批量操作

时间:2014-04-20 01:16:25

标签: php wordpress plugins

我在我的插件中扩展了WordPress中的WP_List_Table。我在这里使用示例:http://wordpress.org/plugins/custom-list-table-example/作为我正在做的事情的基础。现在,在示例文档中,它表示您可以随时随地处理批量操作,但我还没有找到一个示例来说明如何执行此操作。

具体来说,我想在admin_action{$action}钩子中处理它们,然后重定向回到表格页面。

这是一件聪明的事吗?最重要的是,我该怎么办?有人可以提供一个例子吗?

2 个答案:

答案 0 :(得分:2)

可以通过覆盖方法get_bulk_actions()并返回关联的数组来实现批量操作:

function get_bulk_actions() {
  $actions = array(
    'delete'    => 'Delete'
  );
  return $actions;
}

您可以逐步指导here

找到详细信息

被修改

要处理批量操作,是的,您可以使用admin_action{$action}挂钩。如果您使用的是一些简单的操作名称(例如编辑,删除),则只需要确保是,请提交请求验证码以确定请求是否适合您。另一种防止干扰的方法是以您的插件名称为前缀命名,例如(my_aswam_plugin_edit_action,my_aswam_plugin_delete_action)。因为任何带有$ action = YOUR_ACTION 的请求都会触发您的挂钩。

  

add_action(' admin_action_ YOUR_ACTION ',' your_bulk_action_handler_function');

     

函数your_bulk_action_handler_function(){

 // Do your stuff here
 //Make sure you do some check to be sure this request is for you to process

wp_redirect( $_SERVER['HTTP_REFERER'] );
exit(); 
     

}

快乐的编码!

答案 1 :(得分:-1)

这里我写了另一种方法来处理wp_list_table批量操作。

http://kvcodes.com/2014/05/wp_list_table-bulk-actions-example/