Как получить список постов рубрики

Доброго времени суток всем!

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

Кто-нибудь может подсказать, как решить задачу без извлечения всех данных через get_posts(); итп. ?
Я думал использовать прямой запрос к базе, через $wpdb, но недостаточно хорошо знаю, как взаимосвязаны таблицы у ВП, и сформулировать запрос не получается.

получай id рубрики поста, а потом в цикле выводи то, что нужно

Так Id рубрики получить не проблема, проблема обойти использование стандартных функций ВП, которые выдёргивают из базы ВСЕ данные поста(ов) и получить только нужное мне.
То, что из выданного стандартной функцией можно взять только нужное, это понятно. Просто не хочется лишнюю нагрузку создавать, если можно не создавать.
Т.е. проблема не ВЫВЕСТИ нужное, а ПОЛУЧИТЬ из базы только нужное.

$wpdb тебе в помощь… посмотри в кодексе на предмет $wpdb->prepare() и $wpdb->query()
смотреть тут http://codex.wordpress.org/Function_Reference/wpdb_Class

Так о чём я и написал. С $wpdb->query() вопросы имеются, но они решаемы с помощью кодекса. А вот с самим запросом я в тупике пока.
Уж очень мудрёная взаимосвязь получается. Если я правильно понимаю, надо получить поле post_title из wp_posts если для этой записи в wp_term_relationships object_id = id нужной категории и taxonomy из wp_term_taxonomy равно category. Моих мыслей не хватает впихнуть всё это в один запрос. А дёргать базу тремя запросами на каждую запись, это совсем не хорошо imho.

там всё сложно )))) но разобраться можно, прециденты были

Ну, прецидент был, что на цесне через полстраны человек пролетел и сел у кремля…
Буду мучить дальше 🙂
Сложно не там, сложно сложить два плюс два, если с мускулом на Вы.

Если кому-то вдруг пригодиться, моя проблема решается следующим заклинанием:

global $wpdb;
$cat_Post = $wpdb->get_results("SELECT post_title,post_name,slug
FROM $wpdb->posts LEFT JOIN $wpdb->term_relationships ON ( $wpdb->posts.ID = $wpdb->term_relationships.object_id )
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id AND $wpdb->term_taxonomy.taxonomy = 'category' ) LEFT JOIN $wpdb->terms ON ( $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id ) WHERE $wpdb->terms.term_id = '".$post_Cat."'
AND $wpdb->posts.post_type = 'post'");

Ну вот а говорил на Вы )))))

Anonymous
Отправить
Ответ на: