WordPress / MySQL проблема для создания навигационных меню - PullRequest
0 голосов
/ 08 сентября 2010

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

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 15 сентября 2010

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

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

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

$wp_query->post_count

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

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

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

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...