NIUBI
wordpress教程

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

1年前/ 212/ / WP爱好者/ 已收录/
导语: 前面介绍了 WP_List_Table 这个类的简单使用,下面进一步学习下它的用法。由于前面大量讲解了 WP_List_Table 的方法功能,所以没有结合数据表说明,今天就用一个自定义数据表为例,讲一下 WP_List_Table 在 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 显示自定义数据表数据

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 显示自定义数据表数据

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

id 段降序排列:

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

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

点点赞赏,手留余香

还没有人赞赏,快来当第一个赞赏的人吧!
admin给Admin打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付
收藏 0 海报

版权归属:本文为原创文章,版权归 所有

本文链接:( 欢迎分享本文,转载请保留出处 )

免责声明:如发现本站有涉嫌抄袭侵权/违法违规的内容,请邮件/留言反馈,一经查实本站将立刻删除!

<< 上一篇

2019-05-05

下一篇 >>

2019-05-05

全部评论( 0 条 )
扫一扫二维码分享