嗨,我正在尝试使用 wordpress register_activation_hook() 函数创建插件激活时不存在的表。
当我将代码放在插件主文件(我们在其中定义插件元)中时,代码运行良好,但是当我尝试在子目录中的其他文件中使用它时,它不起作用。我已尝试更改register_activation_hook(__FILE__, 'my_medias_db');
为register_activation_hook(to_plugin_root_path, 'my_medias_db');
插件根路径,但仍然无法正常工作。任何想法?
这是代码
function my_medias_db() {
require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
global $wpdb;
$db_table_name = $wpdb->prefix . 'my_medias';
if( $wpdb->get_var( "SHOW TABLES LIKE '$db_table_name'" ) != $db_table_name ) {
if ( ! empty( $wpdb->charset ) )
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
if ( ! empty( $wpdb->collate ) )
$charset_collate .= " COLLATE $wpdb->collate";
$sql = "CREATE TABLE " . $db_table_name . " (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_id` int(11) NOT NULL,
`image_name` text NOT NULL,
`status` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) $charset_collate;";
dbDelta( $sql );
}
}
register_activation_hook(__FILE__, 'my_medias_db');