WordPress / MySQL проблема для создания навигационных меню

0

Я работаю над темой wordpress и должен выбирать записи, которые находятся в нескольких категориях, для создания меню. Я мог бы настроить его на работу с тегами или комбинацию тэгов и категорий, но в конце концов мне нужно иметь возможность выполнять поиск по нескольким cat/tag. Единственная встроенная функция wordpress, которую я смог найти, которая позволяет несколько И искать в cat/tag, является функцией query_posts как таковой:

query_posts(array('category__and' => array(list_of_cats)))

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

Альтернативой является запуск моего собственного запроса, но я не могу определить правильную инструкцию для поиска сообщений в выбранных категориях. Я могу визуализировать, что должно произойти, чтобы искать две категории, но она становится нечеткой в ​​3+.

Я могу выполнить несколько независимых запросов, а затем использовать array_intersect, чтобы найти те, которые соответствуют всем запросам, но я хотел бы немного расширить свои знания mysql и/или wp.

В заключение, я был бы признателен за ответ на любой из следующих вопросов:

1 - альтернатива query_posts(), которая допускает множественное соответствие AND 2 - способ найти количество сообщений, которые будут зацикливаться при использовании query_posts()
3 - некоторая магия mysql, которая запускает большой союз по нескольким запросам в одну и ту же таблицу

Заранее спасибо

Теги:
wordpress-theming

1 ответ

0
Лучший ответ

"Если вы хотите создать отдельные циклы вне основного, вы должны использовать get_posts().

Примечание. Начиная с версии 3.0, массив идентификаторов страниц также может использоваться для параметров include и exclude.

Довольно уверен, что вы можете сделать что-то вроде:

$wp_query->post_count

Получить общее количество запрошенных сообщений.

Да, согласно WPQuery:

get_posts() Получение и возврат запрошенных сообщений из базы данных. Также заселяем $posts и $post_count.

:)

  • 0
    Спасибо, я не смог найти эту переменную post_count ... Я написал собственный цикл, который запрашивает каждую отдельную категорию, а затем находит перекрытие ... Это будет намного чище кода. еще раз спасибо
  • 0
    Конечно. Рад, что я мог помочь. Спасибо, что приняли!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню