Intereting Posts
Добавление метабокса на странице подменю CPT get_template_part () не срабатывает внутри оператора switch, когда у шаблона есть новый WP_Query Почему ключевые слова SQL, такие как CREATE TABLE и UPDATE, должны быть прописными в WordPress? Валидация данных Добавление существующих изображений из Media Library в пользовательскую галерею Как я могу остановить масштабирование редактора изображений WP Image от так называемого пиксельного? Добавление ссылки комментария в начало каждого сообщения Как я могу выборочно печатать сценарии в нижнем колонтитуле определенных страниц администратора? Как я могу создать список значений для итерации с помощью API настройки WordPress? Ошибка WordPress на моем сайте WP-REST всегда возвращает все сообщения параметр orderby не работает в пользовательском запросе добавление пользовательского кода в качестве плагина wordpress Использование расширений файлов в заголовках изображений Пользовательский цикл Woocommerce для отображения всех продуктов

Получите пользователей с разными ролями и функцией вызова для каждого из них (user_meta)

Прежде всего, у меня есть пользовательская функция в functions.php которая получает некоторую информацию об авторе. Это отлично работает на отдельных сообщениях с одним автором.

 <?php function the_author_box() { ?> <div class="widget about-the-author-widget"> <h3 class="widget-title">Over de auteur</h3> <div class="author-header clear"> <div class="author-avatar-wrap"><?php echo get_avatar(get_the_author_meta( 'ID' )); ?></div> <h4 class="author-name"><?php the_author_meta('display_name'); ?></h4> </div> <div class="author-description"><p><?php the_author_meta('description'); ?></p></div> <ul class="author-meta"> <?php if ( get_the_author_meta( 'url' ) ) { ?> <li class="url"> <a href="<?php the_author_meta( 'url' ); ?>" title="De website van <?php the_author_meta( 'display_name' ); ?>">Website</a> </li> <?php // a lot more metas ?> </ul> </div> <?php } ?> 

Но теперь я разрабатываю шаблон пользовательской страницы для отображения «the_author_box» для каждого пользователя, который является либо автором, либо администратором. Все на одной странице.

Я решил, что могу заставить пользователей сделать это (заимствован из stackexchange). Создайте новую функцию:

 function get_clients() { $users = array(); $roles = array('author', 'contributor', 'administrator'); foreach ($roles as $role) : $users_query = new WP_User_Query( array( 'fields' => 'all_with_meta', 'role' => $role, 'orderby' => 'display_name' ) ); $results = $users_query->get_results(); if ($results) $users = array_merge($users, $results); endforeach; return $users; } 

Вызовите пользователей и выполните функцию для каждого пользователя:

 <?php $users_array = get_clients(); foreach ($users_array as $user) { $user->the_author_box(); ?> 

Но это не работает. Я угадываю, потому что это все еще «автор мета», который называется, а не метателе пользователя.

Как я могу вызвать функцию для $user->function() . Другими словами, как я могу получить метаинформацию от этого пользователя?

Solutions Collecting From Web of "Получите пользователей с разными ролями и функцией вызова для каждого из них (user_meta)"

Во-первых, всегда var_dump() что-то, если вы не знаете, что именно вы получили. Если вы не установили и настроили XDebug, просто используйте

 printf( '<pre>%s</pre>', htmlspecialchars( var_export( $dumpMe, true ) ) ); 

который обеспечит столь же информативный ответ.

О WP_User_Query ) IIRC возвращает объекты, являющиеся экземплярами WP_User . Вы можете проверить это с помощью

 $user instanceof WP_User AND print 'Yes, I am a WP_User object'; 

Если это так, просто используйте

 var_dump( get_user_meta( $user->user_id ) ); 

и все должно быть в порядке. Кстати, нет реального автора Мета.