List Table API - Safe to use?

时间:2012-07-25 作者:Ken

只是想知道开发人员对扩展WP_List_Table 类用于插件。

我正在开发一个插件,该插件将显示用户列表(ID、名称、电子邮件),然后从另一个插件中提取数据,该插件在用户元表中创建了订阅日期和访问级别
该插件将位于WP的管理区域,仅对管理员可用。

我希望使用该类能够选择多个用户,并同时编辑多个用户的数据。

在这种情况下使用该类安全吗?还是应该重新创建该表?

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

它不是一个私有类,只有它的方法(一些)被定义为私有的,所以只要你扩展这个类并使用你自己的主题扩展实例,你就应该是安全的。

SO网友:kaiser

已知问题是您不应该使用class WP_List_Table 未检查它是否已在使用中,它位于元框中。

原因是,使用它会破坏其中一个元框的列,因为每个屏幕只有一个过滤器来设置屏幕列。

过滤器manage_{$screen->id}_columns 在…内get_column_headers()
  • manage_{$screen->id}_columnshidden 在…内get_hidden_columns()~/wp-admin/includes/screen.php.

    解决方案#1

    检查这些筛选器是否已连接回调。

    免责声明:我不知道还有其他问题,但可能有一些

    解决方案#2the Codex, 下面是一个简短的示例:

    class WPSE_59744_List_Table extends WP_List_Table
    {
        // Example
        public function extra_tablenav( $which )
        {
            // This can be overridden to display additional controls 
            // between the rendered bulk actions and pagination controls.
            // ...
            // define your logic here
        }
    }
    
    然后简单地使用您自己的实例,如下所示:

    $wpse_59744_list_table = new WPSE_59744_List_Table();
    $wpse_59744_list_table->display();
    

  • 结束