这个问题一直困扰着我一整天,希望你能帮助我。我目前正在为 Wordpress 开发一个插件,以支持 tourdates 作为帖子类型(它用于乐队网站)。对于巡回演出,我需要知道场地,所以我创建了分类场地。现在我想将元数据添加到分类中,所以我尝试将一个表添加到我的 Wordpress 数据库中。这是我到目前为止所得到的:
global $scooby_db_version;
$scooby_db_version = '0.1';
new Venue();
class Venue {
function __construct(){
add_action('plugins_loaded', array(&$this, 'install'));
}
function install(){
global $scooby_db_version;
global $wpdb;
if(get_site_option('scooby_db_version') != $scooby_db_version){
$table_name = $wpdb->prefix."term_meta";
$sql = "
------- Taxonomy Meta -------
CREATE TABLE $table_name (
meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
term_id bigint(20) unsigned NOT NULL DEFAULT '0',
meta_key varchar(255) DEFAULT NULL,
meta_value longtext,
PRIMARY KEY (meta_id),
INDEX term_id (term_id),
INDEX meta_key (meta_key)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
add_option('scooby_db_version', $scooby_db_version);
}
}
}
这根本没有任何作用。显然它确实工作过一次,因为选项表中有一个条目,但它不会更新。似乎该函数根本没有被调用,但是当它被调用时(因此是 db-entry)它没有创建表。
我对此感到非常沮丧,因为我无法继续以这种方式处理我的插件。你们能弄清楚可能是什么问题吗?为什么它不调用我的函数或更新我的数据库?