回答編集履歴

2

間違い箇所訂正

2016/06/09 18:41

投稿

manabufukai
manabufukai

スコア700

test CHANGED
@@ -14,19 +14,29 @@
14
14
 
15
15
   ・アイキャッチ画像はpostmetaテーブルに格納されています。
16
16
 
17
-  ・投稿に関連づいいるアイキャッチデータはposts内の`post_type = 'attachment'`に格納されています。
17
+ /* 間違えましたで訂正… */
18
18
 
19
+  ・投稿に関連づいているアイキャッチのデータはpostmeta内の`meta_key = '_thumbnail_id'`に格納されています。
20
+
19
-  ・`post_type = 'attachment'`のIDがアイキャッチデータのid、post_parentが「投稿ID」です。
21
+  ・アイキャッチそのもののデータはpostmeta内の`meta_key = '_wp_attachment_metadata'`に格納されています。
22
+
23
+  ・`meta_key = '_thumbnail_id'`のpost_idが「投稿ID」、meta_valueが`meta_key = '_wp_attachment_metadata'`のpost_idに対応しています。
20
24
 
21
25
 
22
26
 
23
- つまるところ、一つめのSQLで投稿ID、post_date,post_contentをまず取得して、
24
27
 
28
+
29
+ つまるところ、3つのテーブルを結合するSQL文が必要になります。(※これでも取れました)
30
+
31
+ ただ、結構ハードルが高くなる場合は
32
+
33
+ 一つめのSQLで投稿ID、post_date,post_contentをまず取得して、
34
+
25
- その数を元に、新たにもう一つSQL文を作成する必要があるかな、と。
35
+ その数を元に、新たにもう一つSQL文を作成してもいいのかな、と。
26
36
 
27
37
  実際、SQLで取得しようとすると結構面倒です。
28
38
 
29
-
39
+ (言葉で構造を説明していても混乱してしまいますね…)
30
40
 
31
41
 
32
42
 
@@ -56,6 +66,22 @@
56
66
 
57
67
  ```
58
68
 
69
+ ただし、`$wpdb`は表示させる側のWordPressの様々なデータが格納されている変数なので
70
+
71
+ 他の変数を使用し
72
+
73
+ ```
74
+
75
+ $another_db = new wpdb(user,pass,dbname,host);
76
+
77
+ $test = $another_db->get_results("...");
78
+
79
+ ```
80
+
81
+ 等したほうが良いでしょう。
82
+
83
+ 
84
+
59
85
  また、ここで`post_status = 'post'`となっていますが
60
86
 
61
87
  postは「投稿」であって、「カスタム投稿」を指していませんが、**取得したいのは「カスタム投稿」で正しいのでしょうか?**

1

追記と見栄え修正

2016/06/09 18:41

投稿

manabufukai
manabufukai

スコア700

test CHANGED
@@ -2,15 +2,39 @@
2
2
 
3
3
 
4
4
 
5
- これは**別WordPressのデータベースへ接続しなければならない為にわざわざSQL文を書いている**という解釈で宜しいのでしょうか?
5
+ ##### 1.これは**別WordPressのデータベースへ接続しなければならない為にわざわざSQL文を書いている**という解釈で宜しいのでしょうか?
6
+
7
+
6
8
 
7
9
  もし違うのであればSQL文を書く必要はありません。組み込み関数で処理可能ですし、そうすべきです。
8
10
 
9
11
 
10
12
 
11
- ・wpdbクラス使い方`$wpdb->'テブル名'`です。
13
+ -> もし、別WordPressタベースから取得しなければならなかった場合
12
14
 
15
+  ・アイキャッチ画像はpostmetaテーブルに格納されています。
16
+
17
+  ・投稿に関連づいているアイキャッチのデータはposts内の`post_type = 'attachment'`に格納されています。
18
+
19
+  ・`post_type = 'attachment'`のIDがアイキャッチデータのid、post_parentが「投稿ID」です。
20
+
21
+
22
+
23
+ つまるところ、一つめのSQLで投稿ID、post_date,post_contentをまず取得して、
24
+
25
+ その数を元に、新たにもう一つSQL文を作成する必要があるかな、と。
26
+
27
+ 実際、SQLで取得しようとすると結構面倒です。
28
+
29
+
30
+
31
+
32
+
33
+ ##### 2.wpdbクラスの使い方`$wpdb->'テーブル名'`です。
34
+
35
+
36
+
13
- JOINしない限りカラム名等にまで記述する必要はありません。
37
+ テーブルを結合しない限りカラム名等にまで記述する必要はありません。
14
38
 
15
39
 
16
40