Intereting Posts
Альтернатива WP Remote – управление несколькими сайтами WP на панели управления (обновления, плагины …) Удалить пункты меню страницы плагинов, но поддерживать плагин активным Ошибка 301 переадресации 301 для www http to non-www https Зарегистрировать область виджета, когда была сохранена опция темы? Что такое / wp-json? перейдите на главную страницу, когда я выбираю значение по умолчанию в поле выбора Добавление администратора для определенных пользователей Уникальный дизайн внутри URL определенной категории HTML внутри Customizer Функция Ajaxing в классе виджетов Каков наилучший способ настройки файлов администратора, чтобы они выживали в будущих обновлениях? Фоновое изображение в сообщениях Изменение темы удаляет содержимое страницы в главном редакторе сообщений панели мониторинга Проверка загрузки сайта WordPress Недоступен пункт меню всплывающего меню.

Сортировка пользовательского типа сообщений пользователем usermeta

У меня установлен профиль (CPT), и я пытаюсь найти способ сортировки результатов на основе последнего времени входа автора сообщения. Цель состоит в том, чтобы вознаградить недавно зарегистрированных авторов, нажав их профили в верхней части результатов запроса, тем самым увеличивая видимость их профилей.

Я знаю, как запрашивать с помощью настраиваемых полей, но я не уверен, как обращаться с запросом с помощью usermeta.

Функции, которые я установил:

// Catch the time they login and save it function set_last_login($login) { $user = get_userdatabylogin($login); update_usermeta( $user->ID, 'last_login', current_time('mysql') ); } add_action('wp_login', 'set_last_login'); // Display the time function get_last_login($user_id) { $last_login = get_user_meta($user_id, 'last_login', true); $date_format = get_option('date_format') . ' ' . get_option('time_format'); $the_last_login = mysql2date($date_format, $last_login, false); return $the_last_login; } // Show friendly last login function lastseen() { $lastseen = get_last_login(get_the_author_meta('ID')); $last_login_unix = strtotime( $lastseen ); echo human_time_diff( $last_login_unix ); } 

Запрос на моей странице:

  $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query('post_type=teacher'.'&paged='.$paged); 

Как я могу добавить сортировку по usermeta (например, последний логин) к этому запросу?

Solutions Collecting From Web of "Сортировка пользовательского типа сообщений пользователем usermeta"

Вы должны добавить параметры meta_key , meta_key и order в свой запрос, как описано в Codex: Order & Orderby Parameters :

 <?php $args = array( 'post_type' => 'teacher', 'paged' => $paged, 'meta_key' => 'last_login', 'orderby' => 'meta_value', 'order' => 'DESC' ); $my_custom_query = new WP_Query($args); 

Также обратите внимание, что я не использую переменную $wp_query для хранения запроса. См., Например, описание WP_Query и описание.