[WordPress] データベーステーブル作成

プラグイン作成時にデータベースを作成する処理。

// WordPressパスの定義があるか
if ( ! defined( 'ABSPATH' ) ) exit;

// 有効時に作成
register_activation_hook(__FILE__, 'pluginname_install');
// アンインストール時に削除
register_uninstall_hook(__FILE__, 'pluginname_uninstall');

/**
 * テーブル作成
 */
function pluginname_install(){
    global $wpdb;
    $table = $wpdb->prefix.'pluginname';
    $charset_collate = $wpdb->get_charset_collate();

    if ($wpdb->get_var("show tables like '$table'") != $table) {
        $sql = "CREATE TABLE {$table} (
            id VARCHAR(32),
            date DATETIME,
            name VARCHAR(32)
            ) $charset_collate;";
        
        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
    }
}

/**
 * テーブル削除
 */
function ex_plugin_name_uninstall()
{
    global $wpdb;
    $table_name = $wpdb->prefix . 'pluginname';
    $sql = "DROP TABLE IF EXISTS {$table_name}";
    $wpdb->query($sql);
}

タイトルとURLをコピーしました