回答編集履歴

1

追記

2018/02/15 05:39

投稿

退会済みユーザー
test CHANGED
@@ -53,3 +53,71 @@
53
53
  ```
54
54
 
55
55
  参考:[query_posts(WP_Queryクラス)でカスタムフィールドを使う](https://elearn.jp/wpman/column/c20110915_01.html)
56
+
57
+
58
+
59
+ ----
60
+
61
+ 【追記】
62
+
63
+ > ↑これでfoodがsteakかcakeか空でdrinkが空の投稿が取得出来ますでしょうか?逆に言えば'manjyu'と'barger'以外の投稿全てが取得出来ますでしょうか?
64
+
65
+
66
+
67
+ こういうことですかね?
68
+
69
+ compareにINを指定すればvalue(配列)のいずれかが一致する投稿を取得します。
70
+
71
+ ```PHP
72
+
73
+ 'meta_query' => array(
74
+
75
+ 'relation' => 'AND',
76
+
77
+ array(
78
+
79
+ 'key' => 'food',
80
+
81
+ 'value' => array('', 'steak', 'cake'),
82
+
83
+ 'compare' => 'IN',
84
+
85
+ ),
86
+
87
+ array(
88
+
89
+ 'key' => 'drink',
90
+
91
+ 'value' => array(''),
92
+
93
+ 'compare' => 'IN',
94
+
95
+ ),
96
+
97
+ ),
98
+
99
+ ```
100
+
101
+ これならforeach使うまでもなく、get_user_metaで取ってきた値をそのままvalueに突っ込むだけです。
102
+
103
+ ```
104
+
105
+ $foods = get_user_meta($user->ID, 'food');
106
+
107
+ $foods['food'][] = '';
108
+
109
+
110
+
111
+ 'meta_query' => array(
112
+
113
+ 'relation' => 'AND',
114
+
115
+ array(
116
+
117
+ 'key' => 'food',
118
+
119
+ 'value' => $foods['food'],
120
+
121
+ //以下略
122
+
123
+ ```