Почему я получаю это странное поведение WP_Query, пытаясь выбрать сообщения, имеющие определенный тег?

У меня есть следующая проблема с Избранные посты

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

Итак, на этой странице я поместил этот код цикла:

<header class="header-sezione">
<?php
echo"<h1>IN EVIDENZA:</h1>";

$featured = new WP_Query('tag=featured');

if ($featured->have_posts()) :
while ($featured->have_posts()) : $featured->the_post();
/*
* Include the post format-specific template for the content. If you want to
* use this in a child theme, then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
get_template_part('content', get_post_format());

endwhile;
//wp_reset_postdata();
else :
// If no content, include the "No posts found" template.
get_template_part('content', 'none');

endif;
?>
</header>

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

Я не могу понять, почему это происходит, потому что я указываю, что нужно выбрать только признак тега по этому запросу:

$featured = new WP_Query('tag=featured');

Что мне не хватает? Как я могу решить эту проблему?

Tnx

0

Решение

Вставить

wp_reset_query ();

а также

wp_reset_postdata ();

в конце цикла. Это сбросит запрос.

0

Другие решения

Для дополнительного фильтра вы можете использовать как этот аргумент
$ cat_posts = new WP_Query («showposts = 2&тег = признаки&OrderBy = дата&порядок = DESC «);

<?php
$cat_posts = new WP_Query("tag=featured");
while ( $cat_posts->have_posts() ){
$cat_posts->the_post(); ?>
<div class="btext1">
<h3><?php echo get_the_title(); ?></h3>
<h4><?php echo the_time('F j, Y'); ?> </h4>
<p><?php echo get_the_content(); ?><a href="<?php the_permalink(); ?>">more »</a></p>
</div>

<?php   }  ?>
0

Я решил проблему самостоятельно.

Проблема была не с запросом, а из-за наличия этой строки:

get_template_part('content', 'none');

Если я удаляю его, он работает правильно

0
По вопросам рекламы [email protected]