确定你会认为这是一段相当平凡的代码,但它不起作用。检查元字符串中是否存在元字符串中使用meta_query check in wordpress get_posts函数
下面的代码没有被破坏,它只是不能正常工作。
好吧,在WordPress我有一个自定义字段在我的自定义后类型:个人,这个自定义字段具有meta_key:LOGIN_EMAIL
这个meta_key的内容仅仅是电子邮件地址。
以下是内容一些例子..
[email protected], [email protected], [email protected]
或..
[email protected], [email protected]
,甚至只是一个单一的电子邮件串..
[email protected]
OK ,所以现在你看到了自定义fi的字符串内容场。我可以解释我想要达到的目标。
我有这个变量... $current_user_email = $current_user->user_login;
这是一个单一的电子邮件地址字符串。
然后我需要找到这个电子邮件地址是否存在于meta_key内容中。因此,这是如何我已经做到了......
$lastposts = get_posts(array(
'posts_per_page' => 1,
'post_type' => 'individual',
'post_status' => 'private',
'meta_query' => array(
array(
'key' => 'login_email',
'value' => $current_user_email,
'compare' => 'IN'
)
)
));
在我上面的例子,如果我赞同$current_user_email
它输出[email protected]
但是,即使存在[email protected]在这样的自定义字段之一... [email protected], [email protected], [email protected]
中,我的get_post不会返回任何内容。
如果我然后转到帖子编辑器并从自定义字段中删除所有其他电子邮件,所以[email protected]
是自定义字段中的唯一文本,那么上面的查询可以工作!
我的问题是,我怎么能得到meta_query到包含这个字符串meta_key内找到[email protected]
:[email protected], [email protected], [email protected]
因为“IN”没有做它是什么意思。从http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
感谢
如果你有三个电子邮件地址,你如何添加它们?作为包含全部三个地址(字面上是'[email protected],[email protected],bob.dougal @ hotmail.com')的单个元字段,或者作为三个单独的元字段,每个元字段包含一个电子邮件地址?如果是第一个选项,则用'LIKE'替换'IN'。 –
是的 - 喜欢工作的感谢!是一个元包含只是作为一个字符串(而不是一个数组) – Joshc
乐于帮助。我已经添加了这个答案,并希望你能接受。谢谢。 –