Intereting Posts
нужно использовать другую таблицу стилей для конкретного шаблона страницы Можно ли добавить новое поле в поле meta_value? Как я могу автоматически добавлять свои сообщения на страницу фан-сайта моего сайта? Как обновить настраиваемое поле таксономии с помощью wp_update_term ()? Запустить короткий код с определенным разрешением Где можно найти изменения базы данных между версиями WordPress? Добавить содержимое в заголовок виджета в области администратора внутри виджета? Как автоматически принять запрос друга в приложении buddypress на основе пользовательского мета Пользовательские условия таксономии в меню ведут к какой странице? Как ссылаться на пользовательскую .php-страницу в моей папке Функциональность плагина только для редактора и администратора Показать только старые записи автора Загрузка содержимого страницы в переменную в шаблоне Какие действия могут обновлять / изменять файлы .php? wp_enqueue_scripts не загружают мои скрипты

Отображение даты присоединения участника на странице

Я добавил пользовательское поле в профиль пользователя, который попросил, чтобы пользователи, присоединившиеся к моему клубу, присоединились к моему клубу. Как я могу извлечь эти данные и отобразить на странице, чтобы отметить юбилеи пользователей?

(например: Для мая на этой странице будут показаны все пользователи, которые первоначально присоединились в мае по имени и месяца и дня)

Я знаю, что мне нужен цикл для этого, просто не уверен, как вытащить данные из поля профиля.

Вы можете использовать класс WP_User_Query для запроса метаданных пользователя, однако ваш конкретный пример запроса для списка пользователей с датой присоединения, соответствующей определенному месяцу и с любого года, требует более сложного запроса, чем то, что вы можете сделать из коробки с классом WP_User_Query .

Во-первых, важно, чтобы формат даты был правильным и строго соблюдался, если вы собираетесь запрашивать эти данные. Я бы предложил использовать виджет jQuery datepicker, чтобы включить ввод дат в поле даты присоединения. ГГГГ-ММ-ДД – стандартный формат даты в формате MySQL.


ПРИМЕР 1

Ниже приведен пример простого запроса, который загрузит всех пользователей, присоединившихся в этом месяце:

 $first = new DateTime(); $first->modify( 'first day of this month' ); $first = $first->format( 'Ymd' ); $args = array( 'meta_key' => 'join_date', 'meta_value' => $first, 'meta_compare' => '>=', ); $user_query = new WP_User_Query( $args ); 

ПРИМЕР 2

Вот более сложный мета-запрос, который будет загружать пользователей между определенными датами:

 $first = new DateTime(); $first->modify( 'first day of this month' ); $first = $first->format( 'Ymd' ); $last = new DateTime(); $last->modify( 'last day of this month' ); $last = $last->format('Ym-d'); $args = array( 'meta_query' => array( array( 'key' => 'join_date', 'value' => array( $first, $last ), 'compare' => 'BETWEEN', 'type' => 'DATE' ) ) ); $user_query = new WP_User_Query( $args ); 

ПРИМЕР 3

Для пользовательских запросов вы можете напрямую изменить SQL. Первый шаг – настроить простой запрос:

 $args = array( 'meta_key' => 'join_date', 'meta_value' => 0, ); $user_query = new WP_User_Query( $args ); $users = $user_query->get_results(); foreach( $users as $user ): echo $user->user_nicename; echo ' joined '; echo get_user_meta( $user->ID, 'join_date', true ); endforeach; 

Затем добавим действие для pre_user_query чтобы проверить наш простой запрос и изменить SQL, чтобы он соответствовал месяцу и игнорировал год:

 function wpse52318_user_query( $query ){ if( $query->query_vars['meta_key'] == 'join_date' && $query->query_vars['meta_value'] === 0 ): global $wpdb; $thismonth = date('m'); $query->query_where = "WHERE 1=1 AND ( $wpdb->usermeta.meta_key = 'join_date' AND ( MONTH( $wpdb->usermeta.meta_value ) = $thismonth ) )"; endif; return $query; } add_action( 'pre_user_query', 'wpse52318_user_query' );