Intereting Posts
Как включить логин клиента для конкретной страницы администратора Изменить постоянную ссылку для одной записи Установите cookie, а затем обновите страницу Как настроить символы, которые появляются в визуальном редакторе, вставить пользовательский символ Использовать идентификаторы авторов или имена для повторного вывода внутри цикла Регистрация методов класса как обратных вызовов Данные не будут сохраняться, если обмен веществ в условном режиме у администратора. Что мне не хватает? Функция для эхо (или отображения?) Тегов wordpress в разделе заголовка wp_schedule_event выполняется в фоновом режиме или нет? Создание пользовательской мета из пользовательской таксономии Ограничьте количество сообщений, которые могут иметь категории, – может быть, добавлена ​​новая запись, старейшая из них выпадет, возможно? плагин? Добавление класса html на основе количества сообщений Добавление пользовательского кода на сайт WordPress Выдержка не добавляется. Подробнее Ошибка производительности – медленный запрос БД

Как изменить пользовательский запрос в стандартный цикл?

Я пытаюсь изменить, как результаты отображаются в списке сообщений, который в настоящее время контролируется приведенным ниже кодом. Однако он не построен в WP_Query, while ( $the_query->have_posts() ) : $the_query->the_post(); стиль, к которому я привык, и создал много коротких кодов и стилей цикла.

Как изменить код ниже в «обычный» цикл WordPress, который позволит мне использовать теги шаблонов, такие как the_title ()?

  $totalposts = $wpdb->get_results($querystr, OBJECT); $wp_query->request = $querystr . " LIMIT " . $ppp . " OFFSET " .$offset; $results = $wpdb->get_results($wp_query->request, OBJECT); foreach ($results as $result) { $offset++; $output .= '<a href="'.get_post_permalink($result->ID).'">' . $result->post_title . ' (' . $result->post_date . ')</a><br>'; } 

Как я уже делал пользовательские запросы в прошлом, используйте $wpdb->get_col() и просто вернул массив идентификаторов сообщений. Затем я get_posts() это get_posts() передавая идентификаторы параметру post__in . Таким образом, вы можете использовать стандартные элементы управления WP.

Чтобы иметь возможность использовать теги шаблонов, вам нужно сделать две вещи после получения запроса пользовательского выбора:

  1. Вы должны объявить global $post переменную global $post .
  2. Вы должны вызвать функцию setup_postdata ($ post) для заполнения переменных.

Итак, мой код должен был быть изменен так:

 $results = $wpdb->get_results($wp_query->request, OBJECT); global $post; foreach ($results as $post) { setup_postdata($post); ?> <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> 

и т.п.

Ключом к этому является эта страница codex:

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