こんにちは、ワードプレスの 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');