自定义WordPress插件 – WP_List_Table调用数据库表及操作

[et_pb_section admin_label=”Section” fullwidth=”off” specialty=”off” transparent_background=”off” allow_player_pause=”off” inner_shadow=”off” parallax=”on” parallax_method=”on” padding_mobile=”off” make_fullwidth=”off” use_custom_width=”off” width_unit=”on” make_equal=”off” use_custom_gutter=”off”][et_pb_row admin_label=”row”][et_pb_column type=”4_4″][et_pb_text admin_label=”Text” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

定制属于自己的Wordpress插件 – WP_List_Table调用数据库表及操作

——编写属于自己的非常实用和简单的Wordpress小工具

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”1_3″][et_pb_testimonial admin_label=”Testimonial” url_new_window=”off” quote_icon=”on” use_background_color=”on” background_color=”#81d742″ background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”] 此插件是作者为了方便工作,配合Contact form 7(定制版)使用而开发的,通过修改Contact form 7插件让所有从CF7来的询盘都能记录在数据库里,再让后台运行此插件,便能随时随地查看和统计所有我询盘,导出所有潜在客户。 [/et_pb_testimonial][/et_pb_column][et_pb_column type=”1_3″][et_pb_counters admin_label=”Bar Counters” background_layout=”light” background_color=”#dddddd” bar_bg_color=”#7EBEC5″ use_percentages=”on” use_border_color=”off” border_color=”#ffffff” border_style=”solid”] [et_pb_counter percent=”90″] 实用指数 [/et_pb_counter][et_pb_counter percent=”60″] 难度指数 [/et_pb_counter][et_pb_counter percent=”80″] 拓展指数 [/et_pb_counter] [/et_pb_counters][/et_pb_column][et_pb_column type=”1_3″][et_pb_text admin_label=”插件下载” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

插件下载

点击下载 版本:1.0.0

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section admin_label=”section” transparent_background=”off” background_color=”#f5f5f5″ allow_player_pause=”off” inner_shadow=”off” parallax=”off” parallax_method=”off” padding_mobile=”off” make_fullwidth=”off” use_custom_width=”off” width_unit=”on” make_equal=”off” use_custom_gutter=”off”][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”-声明” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

重点和难点代码分析

些插件完全开源,请自行下载插件和安装,欢迎留言讨论,欢迎修改,可以的话请给个回链注明插件出处。 This plugin is total free and open, please download and install as you wish. Any feedback is welcome! If you use and change the codes of this plugin, a ping back is awesome if you could give me this little favor.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”1. 插件标准信息” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

1. 插件标准信息

WordPress通过标准文件信息头来识别插件。需要在插件管理页里启用插件,才能使用。

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”2_3″][et_pb_text admin_label=”2. 继承WP_List_Table并创建自己的类” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

2. 继承WP_List_Table并创建自己的类

用extends创建自己的类并且构造此类,然后就可以在类中创建此类的方法。

[/et_pb_text][/et_pb_column][et_pb_column type=”1_3″][et_pb_code admin_label=”Code”]<script type=”text/javascript”> /*boolfish.com_300x300*/ var cpro_id = “u2516838″; </script> <script src=”http://cpro.baidustatic.com/cpro/ui/c.js” type=”text/javascript”></script>[/et_pb_code][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”3. get_store_list()从teacher表中获取数据 ” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

3. get_store_list()从teacher表中获取数据

首先判断一下,是否是搜索功能来取值:if( isset( $_REQUEST[‘s’] ) && ( !empty( $_REQUEST[‘s’] ) ) ),否则显示所有的值。

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”4. 获取teacher表中行的数据” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

4. 获取teacher表中列的数据

如果需要显示更多的列,只要在下面数组里面添加字段名和显示名即可,非常简单。 显示列名:

显示列中的数据:

请注意,’cb’行是操作选项列,用来绑定操作。

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”1_2″][et_pb_text admin_label=”5. 设置具有排列功能的列” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

5. 设置具有排列功能的列

只需要将字段名加入$sortable_columns数组即可。

[/et_pb_text][/et_pb_column][et_pb_column type=”1_2″][et_pb_text admin_label=”6. 设置绑定操作的内容” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

6. 设置绑定操作的内容

我们将绑定操作设为删除

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”7. 处理绑定操作” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

7. 处理绑定操作

这里重点讲一下,在网上可以找到一些例子和代码,读取’action’用的是POST方法,此例子是用$_GET[‘action’],原因是因为后面显示表格的时候,用了GET的传值方法<form method=”get” action=””> 。如果是新手,POST和GET传值需要花多点时间去研究和测试一下,才能明白为什么要用GET。 显示列名:

实现bulk-delete操作:

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”8. prepare_items()准备数据” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

8. prepare_items()准备数据

在前面所有的函数准备好后,调用prepare_items()函数将他们显示出来。

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”9. 加入搜索功能” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

9. 加入搜索功能

搜索功能需要在实现的时候加入search_box(‘search’, ‘teacher’),否则它不会出现。

至此,基本上所有的完成所有的功能,你就能做出你自己自己的一个小插件了,如下图所示。

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_image admin_label=”Image” src=”http://www.boolfish.com/wp-content/uploads/2016/01/boolfish-wp-list-table.jpg” show_in_lightbox=”off” url_new_window=”off” use_overlay=”off” animation=”left” sticky=”off” align=”left” force_fullwidth=”off” always_center_on_mobile=”on” use_border_color=”off” border_color=”#ffffff” border_style=”solid”] [/et_pb_image][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section admin_label=”Section” fullwidth=”off” specialty=”off”][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”为些插件准备的数据库及操作” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

为些插件准备的数据库及操作

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”行”][et_pb_column type=”1_2″][et_pb_text admin_label=”Text” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

创建一个表

些插件创建和使用一个简单的数据库进行演示,来举一个简单的例子: 创建一个teacher表,表里面有id,name,address,和year。 登陆Mysql后台数据库,找到你的Wordpress网站所在的数据库,我的数据库名是boolfish。在SQL里面把下面的语句直接复制和粘贴,然后执行。

创建数据库表 执行成功后会显示出结果和自动识别出你的语句。 执行数据库teacher表

[/et_pb_text][/et_pb_column][et_pb_column type=”1_2″][et_pb_text admin_label=”数据库文本” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

给表插入值

为你准备了一些插入teacher表里面的值,你可以直接复制粘贴在SQL框里面执行。你可以先通过这些数据值进行测试和调试,所有功能都成功后,再使用自己的数据表。

为teacher表插入值

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section admin_label=”Section” fullwidth=”off” specialty=”off”][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”相关文献” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

相关文献

http://wpengineer.com/2426/wp_list_table-a-step-by-step-guide/
http://www.sitepoint.com/using-wp_list_table-to-create-wordpress-admin-tables/

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section admin_label=”Section” fullwidth=”off” specialty=”off” transparent_background=”off” background_color=”#f7f7f7″ allow_player_pause=”off” inner_shadow=”off” parallax=”off” parallax_method=”off” padding_mobile=”off” make_fullwidth=”off” use_custom_width=”off” width_unit=”on” make_equal=”off” use_custom_gutter=”off” global_module=”284″][et_pb_row global_parent=”284″ admin_label=”Row”][et_pb_column type=”1_2″][et_pb_blurb global_parent=”284″ admin_label=”Blurb” url_new_window=”off” use_icon=”on” font_icon=”%%176%%” icon_color=”#7EBEC5″ use_circle=”off” circle_color=”#7EBEC5″ use_circle_border=”off” circle_border_color=”#7EBEC5″ icon_placement=”left” animation=”top” background_layout=”light” text_orientation=”left” use_icon_font_size=”off” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

赞助支持

如果您认为本站的插件对你有帮助,完成你的项目,不妨小额赞助我一下,让我有动力继续写出和改善更高质量的插件。

请在微信打开“扫一扫”,扫一下右边的二维码。多多益善,少少无区,感谢你的支持!

或者在支付宝打开“扫一打”,谢谢你的大力支持!

[/et_pb_blurb][/et_pb_column][et_pb_column type=”1_4″][et_pb_text global_parent=”284″ admin_label=”Text” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

微信:

[/et_pb_text][et_pb_image global_parent=”284″ admin_label=”Image” src=”http://www.boolfish.com/wp-content/uploads/2016/02/wechat.jpg” show_in_lightbox=”off” url_new_window=”off” use_overlay=”off” animation=”off” sticky=”off” align=”left” force_fullwidth=”off” always_center_on_mobile=”on” use_border_color=”off” border_color=”#ffffff” border_style=”solid”] [/et_pb_image][/et_pb_column][et_pb_column type=”1_4″][et_pb_text global_parent=”284″ admin_label=”Text” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid”]

支付宝:

[/et_pb_text][et_pb_image global_parent=”284″ admin_label=”Image” src=”http://www.boolfish.com/wp-content/uploads/2016/02/alipay.jpg” show_in_lightbox=”off” url_new_window=”off” use_overlay=”off” animation=”off” sticky=”off” align=”left” force_fullwidth=”off” always_center_on_mobile=”on” use_border_color=”off” border_color=”#ffffff” border_style=”solid”] [/et_pb_image][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section admin_label=”Section” fullwidth=”off” specialty=”off”][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_comments admin_label=”评论” show_avatar=”on” show_reply=”on” show_count=”on” background_layout=”light” use_border_color=”off” border_color=”#ffffff” border_style=”solid” custom_button=”off” button_letter_spacing=”0″ button_use_icon=”default” button_icon_placement=”right” button_on_hover=”on” button_letter_spacing_hover=”0″] [/et_pb_comments][/et_pb_column][/et_pb_row][/et_pb_section]

Leave a Reply

Your email address will not be published. Required fields are marked *