Как получить пользователей по пользовательскому полю / по метаданным пользователя?
Я добавил пользовательское поле в профиль пользователя, используя следующий код:
/*** Adding extra field to get the the user who creates the another user during ADD NEW USER ***/
<?php
function custom_user_profile_fields($user){
if(is_object($user))
$created_by = esc_attr( get_the_author_meta( 'created_by', $user->ID ) );
else
$created_by = null;
?>
<h3>Extra profile information</h3>
<table class="form-table">
<tr>
<th><label for="created_by">Created By</label></th>
<td>
<input type="text" class="regular-text" name="created_by" value="<?php echo $created_by; ?>" id="created_by" /><br />
<span class="description">The person who creates this user</span>
</td>
</tr>
</table>
<?php
}
add_action( 'show_user_profile', 'custom_user_profile_fields' );
add_action( 'edit_user_profile', 'custom_user_profile_fields' );
add_action( "user_new_form", "custom_user_profile_fields" );
function save_custom_user_profile_fields($user_id){
update_user_meta($user_id, 'created_by', $_POST['created_by']);
}
add_action('user_register', 'save_custom_user_profile_fields');
add_action('profile_update', 'save_custom_user_profile_fields');
?>
Теперь я вижу поле , созданное , когда я создаю нового пользователя из панели администратора
А теперь я хочу собрать пользователей по полю created_by
Кодекс: https://codex.wordpress.org/Function_Reference/get_users
Итак, согласно кодексу, это должно быть что-то вроде этого:
<?php
get_users( $args );
$args = array(
'meta_key' => '',
'meta_value' => '',
)
$blogusers = get_users( $args );
// Array of stdClass objects.
foreach ( $blogusers as $my_users ) {
echo $my_users. '<br/>';
}
?>
Я пробовал различные варианты meta_key
и meta_value
Но все возвращается просто пусто.
Что такое точное meta_key
и meta_value
для поля, которое я создал с помощью функции custom_user_profile_fields
?
Как получить пользователей с помощью настраиваемого поля created_by
?
1 answers
Каковы точные мета_ключ и мета_значение для поля, которое я создал с помощью функции custom_user_profile_fields?
created_by
и некоторый идентификатор пользователя, например:
$args = array(
'meta_key' => 'created_by',
'meta_value' => 123,
)
Вы могли бы использовать meta_query
для более сложных поисков.
$args = array(
'meta_query' => array(
array(
'key' => 'created_by',
'compare' => 'EXISTS',
),
)
);
var_dump(get_users($args));
По сути, однако, то, что вы делаете, правильно.