一直在为 Wordpress 构建一个自定义插件,该插件可以工作,但不能。
当我使用以下代码激活插件时:
- 创建表
- 并插入数据(虽然是 3 次?)。
然后得到“插件无法激活,因为它触发了 fatal error 。”
- 没有创建调试日志
- 控制台中没有错误。
- 表单运行并提交
这是创建表函数:
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');
有人吗?
最佳答案
我在您的代码中看到的两个潜在问题是,
add_categories()
函数中的die();
可能会干扰 WordPress 辨别插件是否已成功激活的能力。- 您对
global $table_name;
的使用。您不应将表放在全局命名空间中,因为它可能与其他插件发生冲突。
关于mysql - fatal error - 但它有效 - 不会激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014083/