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

質問編集履歴

3

SQL 追加

2017/02/13 07:46

投稿

minpanpy
minpanpy

スコア16

title CHANGED
File without changes
body CHANGED
@@ -89,4 +89,24 @@
89
89
 
90
90
  ためしに、hogehoge をAdvanced Custom Fields管理画面上で消してみましたが、SQLは変わらずでした。
91
91
 
92
- なにか心当たりありましたら、ご教示いただければ幸いです。
92
+ なにか心当たりありましたら、ご教示いただければ幸いです。
93
+
94
+ ```
95
+ うまくいかないSQL
96
+
97
+ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND (
98
+ wp_term_relationships.term_taxonomy_id IN (154)
99
+ ) AND (
100
+ wp_postmeta.meta_key = 'hogehoge'
101
+ ) AND wp_posts.post_type = 'example_a_post_type' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value DESC, wp_posts.post_date ASC LIMIT 0, 50;
102
+
103
+ ```
104
+
105
+ ```
106
+ うまくいくSQL
107
+
108
+ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND (
109
+ wp_term_relationships.term_taxonomy_id IN (154)
110
+ ) AND wp_posts.post_type = 'example_a_post_type' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value DESC, wp_posts.post_date ASC LIMIT 0, 50;
111
+
112
+ ```

2

SQL を調べたところ原因が分かりましたが、原因の除去ができません。

2017/02/13 07:45

投稿

minpanpy
minpanpy

スコア16

title CHANGED
File without changes
body CHANGED
@@ -69,4 +69,24 @@
69
69
  Custom Post Type UI v1.4.3
70
70
  Custom Post Type Permalinks v2.2.0
71
71
 
72
- ![CPT UIの設定画面](ca446549734fa5bd8c8e0ff6e305e4f7.png)
72
+ ![CPT UIの設定画面](ca446549734fa5bd8c8e0ff6e305e4f7.png)
73
+
74
+
75
+
76
+ その後、WordPress が生成する SQL を見てみたところ、
77
+ ```
78
+ ...中略...
79
+ ) AND (
80
+ wp_postmeta.meta_key = 'hogehoge'
81
+ ) AND wp_posts.post_type = 'example_B_post_type' (以下略)
82
+ ```
83
+
84
+ というSQLになっており、こちらの 'hogehoge' は 他のカスタム投稿A に設定しているもので、B では使っていないものがSQLに入っていることが分かりました。
85
+
86
+ MySQL につなぎ、この部分を抜いたSQL を実行すると、求めている結果が得られました。(1歩前進)
87
+
88
+ ただ、なぜ使っていないカスタムフィールドが条件に入るのかが分からず、どこを修正すれば良いのか分からず困っています。
89
+
90
+ ためしに、hogehoge をAdvanced Custom Fields管理画面上で消してみましたが、SQLは変わらずでした。
91
+
92
+ なにか心当たりありましたら、ご教示いただければ幸いです。

1

設定画面のスクショを追加しました。

2017/02/13 07:31

投稿

minpanpy
minpanpy

スコア16

title CHANGED
File without changes
body CHANGED
@@ -67,4 +67,6 @@
67
67
  ###補足情報(言語/FW/ツール等のバージョンなど)
68
68
  WordPress v4.5.6
69
69
  Custom Post Type UI v1.4.3
70
- Custom Post Type Permalinks v2.2.0
70
+ Custom Post Type Permalinks v2.2.0
71
+
72
+ ![CPT UIの設定画面](ca446549734fa5bd8c8e0ff6e305e4f7.png)