我想通过在主插件文件中包含创建它的脚本来创建表。
我有这个:
register_activation_hook( __FILE__, 'vkrwps_agt' );
function vkrwps_agt() {
global $wpdb;
global $jal_db_version;
$table_name = $wpdb->prefix . "attribute_groups";
$sql = "CREATE TABLE $table_name (
id int(11) NOT NULL AUTO_INCREMENT,
attribute_name VARCHAR NOT NULL,
attribute_group VARCHAR NOT NULL,
PRIMARY KEY id (id)
);";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
} // end vkrwps_agt()
如果我在我的主插件文件中有它,它可以工作(它创建表),但是我将该代码放在我的插件根目录中tables.php
文件夹中名为inc
的另一个脚本中,因为我想将它包含在主插件文件中。
我尝试了以下但不起作用:
require 'inc/tables.php';
我没有收到任何错误(例如找不到文件)但是没有创建表格。
答案 0 :(得分:0)
这是因为在register_activation_hook( __FILE__, 'vkrwps_agt' );
中您指向当前文件(即插件的主文件,请注意__FILE__
)。
函数register_activation_hook()
需要wp-content / plugins目录中主插件文件的路径。完整路径也可以。
例如,当插件位于wp-content/plugin/sampleplugin/sample.php
时,此挂钩的名称将变为activate_sampleplugin/sample.php
。
当插件只包含一个文件并且(默认情况下)位于wp-content/plugin/sample.php
时,此挂钩的名称将为activate_sample.php
。
此函数是activate_PLUGINNAME
操作的包装器,更易于使用。
阅读文档here。