有趣的是,我将主插件文件移动到插件目录中的一个文件夹中。在register\\u activation\\u hook工作正常之前,它现在不工作了;然而,register\\u deactivation\\u钩子仍然可以很好地工作,并且当前正在从同一文件中调用它。我还尝试为激活挂钩明确定义路径,而不是仅仅依赖__FILE__ 关键字。如果能提供任何关于插件不再调用Activation的见解,我们将不胜感激,谢谢。
//define paths
$skirmish_table_name = $wpdb->prefix . \'skirmishes\';
function skirmish_create_db() {
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
//* Create thetable
global $skirmish_table_name;
$sql = "CREATE TABLE $skirmish_table_name (
skirmish_id INTEGER NOT NULL AUTO_INCREMENT,
skirmish_SID TEXT NOT NULL,
skirmish_name TEXT NOT NULL,
skirmish_visibility TEXT NOT NULL,
skirmish_public_tries TEXT NOT NULL,
PRIMARY KEY (skirmish_id)
) $charset_collate;";
dbDelta( $sql );
}
register_activation_hook(__FILE__, \'skirmish_create_db\' );
是代码的基本结构。
事实证明,我将插件恢复为其原始格式,并且仍然没有生成表。我尝试停用之前激活的所有插件,但似乎仍然有什么东西干扰了插件在mysql数据库中创建表的能力。如果能深入了解为什么会发生这种情况,我们将不胜感激。
我已尝试检查所有各种日志,但无法确定发生了什么。我不知道为什么这突然不起作用,而以前它工作得很好。要么激活挂钩出了问题,要么服务器出于某种原因拒绝/删除了创建表请求。。。。