我目前有一个运行良好的wordpress插件,但我现在面临的问题是确保它可以跨任何服务器实例进行部署。基本上我试图这样做,所以插件将创建我需要的表,以及在激活插件时自动插入大量数据(11k +行)。我有导出的sql文件,其中包含所有表(3.8MB)。
我计划实现和自定义的代码如下,但我不确定如何引用SQL文件,除了插入所有数据外,还要创建5个单独的表。
//action hook for plugin activation
register_activation_hook( __FILE__, 'callback_plugin' );
//callback function
function callback_plugin(){
global $wpdb;
$table_name = $wpdb->prefix . "your-table-name";
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
$sql = "CREATE TABLE $table_name (
id int NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL
);";
//reference to upgrade.php file
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
}
非常感谢任何和所有帮助!
答案 0 :(得分:3)
取决于您是在自己的服务器上还是在未知的服务器上部署它。
一次运行就要做很多SQL。我认为它更像是一个队列系统,并通过基于AJAX的导入运行,即:导入11,000行或其他任何东西。例如,您可以批量生成10行。
所以有人会激活插件。
将它们重定向到“安装屏幕”,说“这可能需要几分钟”
点击安装按钮
jQuery现在循环遍历列表并执行admin-ajax一次添加10个(例如)行,然后在完成后显示消息。
如果你在廉价的共享托管公司试试这个,你会有超时,部分数据导入等等......有点乱!