Я использую WordPress, и я хотел бы написать собственный запрос, который бы отображал ежемесячный архив сообщений, основанных на одной определенной категории. Я использовал режим отладки, чтобы узнать, как получить ежемесячный архив на основе всех сообщений, выбрать определенную категорию. Вот вопросы:
Получить ежемесячный архив:
SELECT YEAR(post_date) AS `year`, MONTH (post_date) AS `month`,
count(ID) as posts FROM wp_posts
WHERE post_type = 'post' AND post_status = 'publish'
GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC
Выберите категорию:
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy
AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy
IN ('category') AND t.slug = 'blog' ORDER BY t.name ASC
Я не могу понять, как присоединиться к этим двум;) Любая помощь приветствуется!
Спасибо.
Обновление:
Есть еще одна задействованная таблица, называемая term_relationships, так что всего получается 4 таблицы. Вот изображение структуры базы данных WordPress: http://codex.wordpress.org/images/8/83/WP_27_dbsERD.png
В любом случае, вот где я нахожусь:
SELECT t.*, tt.*, YEAR(post_date) AS `year`, MONTH(post_date) AS `month`,
count(ID) as posts FROM wp_posts, wp_term_relationships AS tr,
wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy IN ('category') AND t.slug = 'blog'
AND post_type = 'post' AND post_status = 'publish'
AND ID = tr.object_id AND tr.term_taxonomy_id = t.term_id
GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC
Я знаю, что это не лучший способ, и поэтому мне нужна ваша помощь;)
Спасибо.