Верните всех пользователей с определенным мета-ключом
Я хотел бы использовать get_users()
для возврата всех пользователей, у которых есть определенный meta_key, но я не хочу указывать, каким должно быть значение, потому что оно будет меняться для каждого пользователя. Значение представляет собой строку json. Возможно ли это?
6
Author: emersonthis, 2012-09-27
1 answers
Вы можете использовать только аргумент 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_Query
и meta_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,
));
9
Author: chrisguitarguy, 2012-09-27 22:52:58