• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

    WordPress使用WP_List_Table显示自定义数据表数据【转】

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 前面介绍了WP_List_Table这个类的简单使用,下面进一步学习下它的用法。由于前面大量讲解了WP_List_Table的方法功能,所以没有结合数据表说明,今天就用一个自定义数据表为例,讲一下WP_List_Table在WordPress后台添加一个对自定义数据表的数据进行管理的列表功能。如果对WP_List_Table不清楚的,请看上一篇文章。 先看看翻页功能:

      WordPress使用WP_List_Table显示自定义数据表数据
      WordPress使用WP_List_Table显示自定义数据表数据

      效果还行,下面看实现步骤。 自定义数据表结构如下:

      WordPress使用WP_List_Table显示自定义数据表数据

      这里随便建了个数据表,不用纠结为什么我的定义这么乱。 然后使用WP_List_Table的方法,设置对应的列表标题,已经列内容处理。与之前的教程相比,我们这里在WP_List_Table调用display方法时处理数据表查询动作。前面已经说了,WP_List_Table调用display方法将会执行prepare_items方法,也就是说我们的数据表操作在prepare_items方法中进行。 function prepare_items() { global $wpdb; //This is used only if making any database queries $sql="SELECT COUNT(*) as numbers FROM `zhongyidc`"; $results = $wpdb->get_results($sql); $total_items =(int)$results[0]->numbers; $per_page = 5; $start=0; $querystr = "SELECT * FROM `zhongyidc`"; if($_GET['orderby'] && $_GET['order']){ $querystr .=" order by ".$_GET['orderby']." ".$_GET['order']; } if($_GET['paged']){ $start=((int)$_GET['paged']-1)*$per_page; } $querystr .= " limit ".$start.",".$per_page ; $results = $wpdb->get_results($querystr, ARRAY_A); $data = $results; $columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array($columns, $hidden, $sortable); $this->process_bulk_action(); $current_page = $this->get_pagenum(); $this->items = $data; $this->set_pagination_args( array( 'total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items/$per_page) ) ); } 这里首先对整个数据表中记录总数进行查询,方便后面使用记录数进行分页操作。 然后根据get请求参数构造mysql查询命令,用来获取数据。在这里我没有严格检查get参数,所以这段代码是有bug的,使用时需注意,别问我为什么不写完整,因为我懒呀! 再说一下这些get参数,paged是用来翻页的,orderby是排序指定字段用的,order是排序方式,升还是降。

      id段升序排列:

      WordPress使用WP_List_Table显示自定义数据表数据

      id段降序排列:

      WordPress使用WP_List_Table显示自定义数据表数据
      你需要登录,才能进行发帖操作