smargelov
@smargelov
Верстальщик

Как вывести облоко тэгов за определенный период времени?

Добрый день.


Из-за слабого (очень) знания PHP, не могу решить одну задачку. Нужно сделать страницу на wordpress с несколькими облаками меток. Каждое из них должно показывать метки использованные в постах за последнюю неделю/месяц/год и всё время.


Как мне настроить такой фильтр?


Поиск по сети привёл меня вот к такому коду для functions.php

function filter_where_30( $where = '' ) {
	// за последние 30 дней  
	$where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
	return $where;
}



Но во-первых, хотелось бы добавить возможность не дублируя код менять количество отнимаемых дней, а во-вторых, не знаю, как совместить этот фильтр с
<?php wp_tag_cloud( ); ?>

и вывести на странице.


Надеюсь, не сильно безграмотно описал суть проблемы.


Заранее благодарен.
  • Вопрос задан
  • 3437 просмотров
Пригласить эксперта
Ответы на вопрос 3
HighQuality
@HighQuality
☁ Ниндзя девелопер
Не могу сказать ничего на счет нюансов WP, но работать с датой можно и на уровне запроса.
WHERE post_date BETWEEN NOW() - INTERVAL 1 DAY AND NOW()

А в strtotime всё равно day (не days) даже если их много, кажется.
Ответ написан
> Потому лучше такое облако выводить через AJAX после загрузки страницы.

Нагружать БД это будет не меньше. Лучше выполнить один раз и закэшировать как можно дольше, например в транзитном кэше.
Ответ написан
Комментировать
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
если записей и тегов много, то SQL будет тормозить. Запросы тяжелые, кешируются слабо (особенно если строить облака не по календарным месяцам, а по минус-N-дней-от-текущей-даты). Собирать и облака тегов ежемесячно (еженедельно, ежедневно… как там у вас в задумке), формировать из них статичные структуры (HTML, например) и отдавать по запросу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы