teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文章追記

2020/11/30 03:51

投稿

thinkmad83989
thinkmad83989

スコア6

title CHANGED
File without changes
body CHANGED
@@ -41,5 +41,5 @@
41
41
  と記載しましたが、テーブルの追加はされず、
42
42
  「プラグインの有効化中に4861文字の予期しない出力が生成されました」
43
43
  とメッセージが表示されました。
44
-
44
+ ショートコードを記載した場合の動きは正常なことは確認できています。
45
45
  そもそも階層の作り方が間違っているのでしょうか?

2

最後尾に疑問追加

2020/11/30 03:51

投稿

thinkmad83989
thinkmad83989

スコア6

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,6 @@
40
40
  ```
41
41
  と記載しましたが、テーブルの追加はされず、
42
42
  「プラグインの有効化中に4861文字の予期しない出力が生成されました」
43
- とメッセージが表示されました。
43
+ とメッセージが表示されました。
44
+
45
+ そもそも階層の作り方が間違っているのでしょうか?

1

実行した修正を記載

2020/11/30 03:49

投稿

thinkmad83989
thinkmad83989

スコア6

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