返回具有特定元密钥的所有用户

时间:2012-09-27 作者:emersonthis

我想使用get_users() 返回具有特定meta\\u键的所有用户,但我不想指定该值必须是什么,因为它将为每个用户更改。该值是一个json字符串。这可能吗?

1 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

您可以使用meta_key 参数,其结果将类似于使用EXISTS sql语句。

<?php
$users = get_users(array(
    \'meta_key\'     => \'your_meta_key\',
));
或者,您可以使用空字符串meta_value (默认)和> 对于meta_compare. 结果是一样的(可能是因为meta_value 如果为空,则忽略!)。

<?php
$users = get_users(array(
    \'meta_key\'     => \'your_meta_key\',
    \'meta_value\'   => \'\',
    \'meta_compare\' => \'>\',
));
第一种方法在使用WP_Querymeta_query 也我的插件示例:

    $links = get_posts(array(
        \'post_type\'   => self::POST_TYPE,
        \'numberposts\' => apply_filters(\'seoal_number_links\', -1),
        \'meta_query\'  => array(
            \'relation\' => \'AND\',
            array(
                \'key\'     => self::get_key("type_{$post->post_type}"),
                \'value\'   => \'on\',
                \'compare\' => \'=\'
            ),
            array(
                \'key\'     => self::get_key(\'url\'),
                \'compare\' => \'EXISTS\' // doesn\'t do anything, just a reminder
            ),
            array(
                \'key\'     => self::get_key(\'keywords\'),
                \'compare\' => \'EXISTS\' // doesn\'t do anything, just a reminder
            )
        ),
        \'suppress_filters\' => false,
    ));

结束