0

作为一种方法,这可能看起来有点奇怪。

我的 wordpress 网站上有帖子,其中有一个名为“ login_email”的自定义字段

在我的主题文件中,我有这个查询......

$press = new WP_Query(array(
    'posts_per_page' => -1,
    'post_type'     => 'download',
    'post_status'   => 'private',
    'meta_query'    => array(
        array(
            'key' => 'login_email',
            'value' => $current_user->user_login,
            'compare' => '='
        )
    )      
));

这只是检索具有login_email匹配的自定义字段值的私人帖子$current_user->user_login

目前在我的login_email自定义字段中,我有这个值......

josh@samplemail.uk.com

不,我想做的是向这个自定义字段添加更多电子邮件,并用这样的逗号分隔......

josh@samplemail.uk.com, colin@samplemail.uk.com, jimbo@samplemail.uk.com

...并且我上面的查询能够识别此列表中的一封电子邮件。


例如,如果用户colin@samplemail.uk.com已登录,那么由于 colins 电子邮件存在于此自定义字段中(以及 josh 和 jimbo 的电子邮件),则该帖子将在查询中返回。

我希望这有点道理。让我知道是否需要详细说明。

就像我需要修改查询中的比较 - 但这些是我能找到的唯一选项......

compare (string) - 要测试的运算符。可能的值是 '='、'!='、'>'、'>='、'<'、'<='、'LIKE'、'NOT LIKE'、'IN'、'NOT IN'、'BETWEEN '、'NOT BETWEEN'、'EXISTS'(仅在 WP >= 3.5 中)和 'NOT EXISTS'(也仅在 WP >= 3.5 中)。默认值为“=”。 资源

...我已经测试了 EXISTS 但没有返回任何帖子。


有没有人有一个聪明的解决方案或想法?


谢谢乔什

4

1 回答 1

0

请尝试运营商IN。这将允许您搜索多封电子邮件。

按照IN这里写的条款:http: //core.trac.wordpress.org/ticket/14997

于 2013-04-23T13:16:12.010 回答