WordPress 教程:為插件自定義數(shù)據(jù)表_網(wǎng)頁(yè)設(shè)計(jì)教程
推薦:如何使用查找我的iPhone教程手機(jī)丟了第一步就是要先定位,這個(gè)就不用說(shuō)了,如果你還沒(méi)有開啟定位功能趕緊回去開吧,就算不是被偷也有可能找不到的,開啟后又電腦和賬號(hào)就能定位了,今天帶大家一起來(lái)看
當(dāng)你寫插件的時(shí)候,你可能需要寫東西到數(shù)據(jù)庫(kù)中去,一般來(lái)說(shuō),有兩種數(shù)據(jù)要存儲(chǔ),第一種是安裝數(shù)據(jù),一般存儲(chǔ)在 wp_options 表中,使用 WordPress 的 options 機(jī)制來(lái)實(shí)現(xiàn)。第二種是數(shù)據(jù),可以存儲(chǔ)到 postmeta 表或者 usermeta 表中。如果數(shù)據(jù)特別多,就需要單獨(dú)創(chuàng)建數(shù)據(jù)表了。這篇文章就講講如何在寫插件時(shí)候創(chuàng)建數(shù)據(jù)表。
一般在寫插件時(shí)候創(chuàng)建數(shù)據(jù)庫(kù)有如下三個(gè)步驟:
-
創(chuàng)建一個(gè)添加新數(shù)據(jù)表的 PHP 函數(shù)。
-
保證插件啟動(dòng)的時(shí)候調(diào)用這個(gè)函數(shù)。
-
如果新版本有不同的數(shù)據(jù)表結(jié)構(gòu),創(chuàng)建一個(gè)升級(jí)函數(shù)。
今天我就以微信機(jī)器人 WordPress 插件高級(jí)版的 新功能:自定義文本回復(fù),來(lái)講解下這個(gè)過(guò)程,其中的第三步,由于沒(méi)有數(shù)據(jù)庫(kù)的升級(jí)不涉及。
創(chuàng)建一個(gè)添加新數(shù)據(jù)表的 PHP 函數(shù)
我們這個(gè)插件的安裝函數(shù)叫做:weixin_robot_texts_crate_table。
1. 數(shù)據(jù)庫(kù)表前綴
默認(rèn) WordPress 數(shù)據(jù)庫(kù)標(biāo)簽前綴都是 wp_,但是有人如果在一個(gè)數(shù)據(jù)庫(kù)安裝兩個(gè)及以上 WordPress,就需要在 wp-config.php設(shè)置 WordPress 數(shù)據(jù)庫(kù)表前綴來(lái)區(qū)別,所以我們向 WordPress 數(shù)據(jù)庫(kù)添加新表的時(shí)候,要先找找到數(shù)據(jù)庫(kù)表前綴。我們可以在變量 $wpdb->prefix 找到。代碼如下:
global $wpdb;$table_name = $wpdb->prefix . "weixin_robot_texts";
2. 判斷表是否存在
可以通過(guò)一條 SHOW TABLES SQL 查詢來(lái)判斷。
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name)
3. 創(chuàng)建數(shù)據(jù)表
這步就是實(shí)際來(lái)創(chuàng)建一個(gè)數(shù)據(jù)表了。我們這個(gè)表有5個(gè)字段,id 自定義文本回復(fù)的 ID。keyword 微信發(fā)送過(guò)來(lái)的關(guān)鍵字,reply 自定義回復(fù),time 添加的時(shí)間,status是否啟用,有時(shí)候只是不想暫時(shí)不想啟用,而不是刪除。
這里我不用直接的 SQL 查詢來(lái)創(chuàng)建,而是使用在 wp-admin/upgrade-functions.php(我們需要加載該文件,默認(rèn)是不會(huì)加載的)中的 dbDelta。dbDelta 函數(shù)會(huì)檢查當(dāng)前的表結(jié)構(gòu),和需要的表結(jié)構(gòu)進(jìn)行比較,所以無(wú)論添加或者修改表都會(huì)非常方便。關(guān)于具體怎樣使用 dbDelta,詳細(xì)可以看 wp-admin/upgrade-schema.php 中的例子。
$sql = "CREATE TABLE " . $tablename . " (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keyword` varchar(255) CHARACTER SET utf8 NOT NULL,
`reply` text CHARACTER SET utf8 NOT NULL,
`status` int(1) NOT NULL DEFAULT '1',
`time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
最后這個(gè) weixin_robot_texts_crate_table 函數(shù)為:
function weixin_robot_texts_crate_table() {
global $wpdb;
$table_name = $wpdb->prefix . "weixin_robot_texts";
if($wpdb->get_var("show tables like '$table_name'") != $weixin_robot_texts_table)
{
$sql = "CREATE TABLE " . $table_name . " (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keyword` varchar(255) CHARACTER SET utf8 NOT NULL,
`reply` text CHARACTER SET utf8 NOT NULL,
`status` int(1) NOT NULL DEFAULT '1',
`time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql); }}
保證插件啟動(dòng)的時(shí)候調(diào)用創(chuàng)建數(shù)據(jù)表函數(shù)
我們使用 register_activation_hook 調(diào)用上面創(chuàng)建數(shù)據(jù)表的函數(shù)。
register_activation_hook( __FILE__,'weixin_robot_texts_crate_table');分享:微信公眾平臺(tái)教程(二) 消息管理與群發(fā)這部分主要講解微信公眾平臺(tái)的消息管理技巧和群發(fā)注意事項(xiàng),我會(huì)結(jié)合一些營(yíng)銷要數(shù)加入到本篇教程里面,希望能幫助大家在營(yíng)銷和使用上更加得心應(yīng)手。如果對(duì)本篇教程有任何疑
- 中國(guó)互聯(lián)網(wǎng)黑色產(chǎn)業(yè)人數(shù)近10萬(wàn) 5分鐘1起網(wǎng)絡(luò)入侵
- 馬云最后的發(fā)布會(huì):打假,打出阿里的新未來(lái)
- 實(shí)踐分享:ACCESS數(shù)據(jù)庫(kù)導(dǎo)入mysql數(shù)據(jù)庫(kù)
- ACCESS數(shù)據(jù)庫(kù)轉(zhuǎn)ORACLE數(shù)據(jù)庫(kù)分享
- CDN.net免費(fèi)CDN申請(qǐng)使用教程:100GB流量香港日本新加坡節(jié)點(diǎn)
- 如何使用查找我的iPhone教程
- 微信公眾平臺(tái)教程(二) 消息管理與群發(fā)
- 中國(guó)IPv4地址今年將告罄 IPv6期待打破政策局
- 移動(dòng)廣告野蠻成長(zhǎng):75%投放在iOS平臺(tái)
- 災(zāi)難面前,互聯(lián)網(wǎng)公司可以如何做的更好?
- 富士康500萬(wàn)部iPhone遭蘋果退貨 損失10億元
- 微軟中國(guó)校園協(xié)議:Office 2013專業(yè)版只需248元
網(wǎng)頁(yè)設(shè)計(jì)教程Rss訂閱網(wǎng)站制作教程搜索
網(wǎng)頁(yè)設(shè)計(jì)教程推薦
- 土豆網(wǎng)前端概況
- 非設(shè)計(jì)師談設(shè)計(jì)之Apple改版
- 7大絕招提升網(wǎng)站的質(zhì)量絕版
- 國(guó)內(nèi)2.0音樂(lè)網(wǎng)站首頁(yè)設(shè)計(jì)謬談
- 篩選下拉的表現(xiàn)方式
- 活動(dòng)網(wǎng)站設(shè)計(jì)點(diǎn)評(píng)之斯柯達(dá)
- 創(chuàng)意十足的web布局及交互設(shè)計(jì)
- 淺談頁(yè)面設(shè)計(jì)中光影的特效
- 初步了解信息架構(gòu)
- 交互設(shè)計(jì)實(shí)用指南系列(0) – 我們眼中的交互設(shè)計(jì)
- 相關(guān)鏈接:
- 教程說(shuō)明:
網(wǎng)頁(yè)設(shè)計(jì)教程-WordPress 教程:為插件自定義數(shù)據(jù)表
。