我正在创建一个wordpress插件,该插件在激活后会创建我的数据库表。我有一个.sql文件,其中包含〜2000行数据,我想在创建数据库表后执行该文件。您认为哪种方法是在插件激活时插入这些数据的最佳方法?
我知道它将在激活钩上执行-但是是否有可能执行.sql文件,或者我是否必须找到另一种方法并以某种方式通过$ wpdb-> insert()执行每一行?
如果您需要进一步的信息,请询问,我会提供-我也进行了搜索,但找不到相同的案件。
答案 0 :(得分:0)
下面是实现此目的的最佳方法,因为首先它将初始化custom_create_plugin_tables
,然后将初始化custom_insert_data_custom_table
register_activation_hook( __FILE__, 'custom_create_plugin_tables' )
register_activation_hook( __FILE__, 'custom_insert_data_custom_table' );
function custom_create_plugin_tables()
{
global $wpdb;
$table_name = $wpdb->prefix . 'table_name';
$sql = "CREATE TABLE $table_name (
id int(11) NOT NULL AUTO_INCREMENT,
column_two varchar(255) DEFAULT NULL,
column_three int(11) NOT NULL,
UNIQUE KEY id (id)
);";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
function custom_insert_data_custom_table()
{
global $wpdb;
$table_name = $wpdb->prefix . 'table_name';
$rows_affected = $wpdb->insert( $table_name, array( 'column_two' => "column_two_value", 'column_three' => 'column_three_value' ));
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $rows_affected );
}