正在为Wordpress构建自定义插件,但有效却无效。
当我使用以下代码激活插件时:
然后得到“插件无法激活,因为它触发了致命错误。”
这是创建表函数:
function db1_install() {
global $wpdb;
global $db_version1;
global $table_name;
$table_name = $wpdb->prefix . 'myCategories';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL,
item varchar(20) NOT NULL,
item_cat varchar(20) NOT NULL
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
add_option( 'db_version1', $db_version1 );
}
register_activation_hook( __FILE__, 'db1_install' );
这是数据插入功能:
`enter code here`function add_categories(){
global $wpdb;
$table_name = $wpdb->prefix . 'myCategories';
$wpdb->query("INSERT INTO $table_name (id,item,item_cat)
values (1,'item1','cat1'), (2,'item2','cat1'), (2,'item3','cat4')");
die();
return true;
}
register_activation_hook( __FILE__, 'add_categories');
人
答案 0 :(得分:0)
我在代码中看到的两个潜在问题是,
die();
功能中的add_categories()
可能会弄乱WordPress'能够辨别插件是否成功激活。global $table_name;
的使用。您不应该将表放在全局命名空间中,因为它可能与其他插件冲突。