Intereting Posts
Pagination для сообщений в блогах, перезагружающих одну и ту же страницу Как редактировать изображение с XML RPC? Post Navigation не работает в шаблоне блога – перенаправление на ту же страницу с правильным URI Полуспециализированный вопрос о таксономии Отображение пользовательской таксономии, относящейся к каждому типу сообщения показывать сообщения из определенной категории на странице, в тематической детской теме? создать отдельный шаблон страницы для комментариев WordPress short_ping, что он делает Подкаталог Multisite с таким же доменом домена Действие внутри другого действия не работает Как заменить URL-адрес страницы с субдоменом во всех местах, даже в XML-файле sitemap? Получать сообщения после сегодняшнего дня (предстоящие события) Зарегистрированные cookie-файлы в качестве неверного домена Возвращаемое значение add_menu_page Должен ли я обновиться?

Сбросить запрос WordPress Post по умолчанию

Я в ситуации, я создаю пользовательскую тему WordPress, но я что-то застрял.

в моей индексной / домашней странице, во-первых, я показываю 6 сообщений по категориям, как показано ниже

<?php $posts = get_posts('category=2&numberposts=6'); foreach($posts as $post) { <h2><?php the_title(); ?></h2> <?php } ?> 

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

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <h2><?php the_title() ?></h2> _e('<p class="nopost">Sorry, no posts matched your criteria.</p>'); endif;?> 

Проблема:

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

я предполагаю, что должен быть способ сбросить запрос после отображения сообщения категории. Пожалуйста, помогите мне.

Solutions Collecting From Web of "Сбросить запрос WordPress Post по умолчанию"

Ваша проблема – ваш пользовательский запрос. Не используйте переменные, которые по умолчанию используется WordPress. $posts и $post – это глобальные переменные WordPress. Измените $post на уникальную переменную, например $posts_query .

При использовании get_posts и вам нужно настроить postdata, чтобы использовать теги шаблона, у вас нет выбора, но для использования $post поскольку setup_postdata() требует $post для передачи ему. Это нарушает основной запрос $post global, поэтому вам нужно сбросить его после завершения. Это делается с помощью wp_reset_postdata() .

Только примечание к вашему коду, теги шаблонов недоступны по умолчанию при использовании us_ get_posts , поэтому вам нужно добавить setup_postdata( $post ); внутри цикла foreach чтобы использовать теги шаблонов

Ваш пользовательский запрос должен выглядеть примерно так:

 $posts_query = get_posts( 'YOUR ARGUMENTS' ); if ( $posts_query ) { foreach ( $posts_query as $post ) { setup_postdata( $post ); // You can now use template tags like the_title() and the_content() } wp_reset_postdata(); }