WordPress – создание списка сообщений, отфильтрованных по тегу, а затем категории

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

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

Насколько я могу судить, нет никакого способа сделать это с помощью query_posts или чего-то еще, ему нужно более продвинутое использование базы данных, но я не знаю, как это сделать! Я думаю, что здесь есть аналогичный вопрос, но поскольку я знаю очень мало PHP и не MySQL, я не могу понять ответы!

Solutions Collecting From Web of "WordPress – создание списка сообщений, отфильтрованных по тегу, а затем категории"

Хорошо, я наконец нашел относительно простое решение этого.

В WordPress есть ошибка, препятствующая запросу обеих категорий и тегов, поэтому query_posts('cat=2&tag=bread'); не работает, но путь вокруг этого – query_posts('cat=2&tag=bread+tag=bread'); который волшебным образом работает.

В шаблоне tag.php я хотел, чтобы он взял тег из этого архива, поэтому мне пришлось это сделать:

 <?php query_posts('cat=12&tag='.$_GET['tag'].'+'.$_GET['tag']); ?> 

который отлично работает.

Попробуйте этот код:

 query_posts('tag=selected_tag'); while (have_posts()) : the_post(); foreach((get_the_category()) as $category) { if ($category->cat_name == 'selected_category') { // output any needed post info, for example: echo the_title(); } } endwhile; 

Согласно API WordPress , вы можете фильтровать теги в вызове query_posts .

Примеры:

 query_posts('tag=cooking'); query_posts('tag=bread,baking'); query_posts('tag=bread+baking+recipe');