wordpressにてプラグイン製作をしています。
そのプラグインを有効化した際に新規でDBにテーブルを作る必要があるのですが、どこにどういう書き方をすれば望んだテーブルを作れるのかを知りたいです。
分かりやすく説明が載っているサイトやヒントになるサイトなどを教えていただくと助かります。
もちろん、直接回答にやり方を記載することも歓迎しますが、理解をしたいので説明をプラスして頂きたいです。
11/30追記
今回プラグイン名はtry(仮)とします。
階層は
plugins/try.php(メニューへの項目追加やショートコードを定義)
plugins/try-function.php(ショートコードの中身の機能部分を記載)
plugins/create_tbl.php(有効化した際に作成するテーブル情報を記載)
としています。
そこでtry.phpに
PHP
1register_activation_hook( __FILE__, 'dev_install' );
と追記。
create_tbl.phpに
PHP
1<?php 2 function tbl_install() { 3 global $wpdb; 4 5 $table_name = $wpdb->prefix . "try"; 6 7 $charset_collate = $wpdb->get_charset_collate(); 8 9$sql = "CREATE TABLE $table_name ( 10 post_id bigint(20), 11 image_id bigint(20), 12 image_url varchar(200) NULL, 13 PRIMARY KEY (post_id,image_id) 14) $charset_collate;"; 15 16require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); 17dbDelta( $sql ); 18} 19
と記載しましたが、テーブルの追加はされず、
「プラグインの有効化中に4861文字の予期しない出力が生成されました」
とメッセージが表示されました。
ショートコードを記載した場合の動きは正常なことは確認できています。
そもそも階層の作り方が間違っているのでしょうか?
回答2件
あなたの回答
tips
プレビュー