Intereting Posts
add_action по статусу наследования Получить переменную из объекта в массиве Сохранение пользовательских данных для каждого пользователя Имя автора комментария Отображение Условий из пользовательской таксономии, назначенной сообщению (внутри цикла) в иерархическом порядке Получить имя термина без цикла foreach Что делать, если сообщения WordPress на новом сервере возвращают ошибку 404 Удалить wp_add_inline_style Как заказывать сообщения пользовательской ролью WP? Добавить страницу в add_menu_page Как предупреждать пользователей о появлении новых сообщений в поисковом запросе? Отключить электронные письма администратора для регистрации новых пользователей даты / времени и полей загрузки файлов (изображений) для настраиваемых полей (например, с большим количеством полей) Разрешение 775 недостаточно Как передать внешние переменные в фильтры / действия

почему выводится текущий заголовок страницы?

это в моем файле sidebar.php, который втягивается в файл header.php (это плохая практика?). в любом случае, последний элемент в списке – это текущий заголовок страницы, несмотря на мои запросы_почты с аргументами только настраиваемого типа сообщений для бюллетеней

<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('Sidebar Widget')) : else : ?> <div id="sidebar" class="newsletters"> <h2>Newsletters</h2> <ul> <?php $args = array ('post_type' => 'newsletters'); query_posts($args); if (have_posts()) : while (have_posts()) : the_post();?> <li><a href="<?php the_field('pdf');?>"><?php the_title();?></a></li> <?php wp_reset_query(); endwhile; endif; ?> </ul> </div><!--END sidebar --> 

Простой ответ – потому что вы используете query_posts() , который изменяет основной запрос. Это почти всегда приводит к непредвиденным результатам, так как сейчас вы обнаруживаете трудный путь.

Как правило, лучше всего вызывать боковую панель с помощью get_sidebar() вместо include (что вы, вероятно, есть, но это неясно), и я предпочитаю вызывать его после запуска основного цикла, чтобы вместо этого использовать новый WP_Query() . Это заменит текущий цикл полностью новыми данными и будет моим выбором решения. Замените query_posts($args) на $query = new WP_Query($args) и вам должно быть хорошо идти. Обычно, я бы сказал, избавиться от вашего wp_reset_query() , но поскольку вы вызываете это в заголовке, вы должны оставить его, чтобы он дал вам обычные данные страницы для остальной части страницы. Это приведет к некоторым накладным расходам, но если у вас есть хорошее кэширование, вы не должны его вообще замечать.

редактировать

Пример «рабочий» код:

 <?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('Sidebar Widget')) : else : ?> <div id="sidebar" class="newsletters"> <h2>Newsletters</h2> <ul> <?php $args = array ('post_type' => 'newsletters'); $query = new WP_Query($args); while ( $query->have_posts() ) : $query->the_post(); $pdf=get_field('pdf'); echo "<li>"; echo '<a href="'.$pdf.'">'; the_title(); echo "</a></li>"; endwhile; wp_reset_postdata(); ?> </ul> </div><!--END sidebar --> <?php endif; ?>