Как ограничить wp_get_archives по категории в WordPress?

7 февр. 2011 г., 16:39:41
Просмотры: 15.9K
Голосов: 3

У меня есть две категории на сайте - новости, содержащие новостные записи, и блог - содержащий посты блога. На каждой странице в сайдбаре есть wp_get_archives. Я хочу ограничить список архивов по категории, но после просмотра кодекса это кажется невозможным. http://codex.wordpress.org/Function_Reference/wp_get_archives

<?php wp_get_archives('type=monthly&limit=12'); ?>

Этот код выводит архивы для всех записей, но мне нужно вывести архивы только для конкретной категории. Я использую не ту функцию? Или это невозможно?

1
Комментарии

Используйте эту http://kwebble.com/blog/2007_08_15/archives_for_a_category

wpmayor wpmayor
14 апр. 2011 г. 13:00:10
Все ответы на вопрос 4
3

В принципе, это возможно, но несколько громоздко. Данная функция использует прямой SQL-запрос к базе данных, который можно изменить с помощью фильтров getarchives_where и getarchives_join.

7 февр. 2011 г. 16:47:03
Комментарии

но только для одной категории... а что если я хочу разделить архив на три отдельных архива. Один для блога, один для новостей и один для выставок. Мне удалось использовать часть URL, так что я исправил следующую метку. Проблема в том, что ссылки в виджете архива всегда ведут меня в общий архив с такими ссылками, как mysite.com/2012/12, вместо mysite.com/news/2012/12

toto_tico toto_tico
26 июн. 2013 г. 07:47:48

@toto_tico пожалуйста, задайте новый вопрос по вашей проблеме :)

Rarst Rarst
26 июн. 2013 г. 12:33:25

Я сделал это здесь. В конце концов, я нашел ответ, который вроде бы работает. По крайней мере, я знаю, что могу доработать то, чего не хватает.

toto_tico toto_tico
26 июн. 2013 г. 13:03:27
0

Я только что установил этот плагин, и он, кажется, работает нормально.

http://wordpress.org/extend/plugins/wp-category-archive/installation/

8 февр. 2011 г. 06:56:59
2

Я использую этот код на своем сайте для вывода записей из определенной категории (это в сайдбаре - показывает только мои записи из 'блога', а не из 'портфолио'):

<ul>
<?php
global $post;
$myposts = get_posts('numberposts=10&category=3&order=DESC');
foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul> 
7 февр. 2011 г. 16:46:02
Комментарии

Вы можете расширить это и сделать так, чтобы отображались только записи для текущей категории, получая slug или ID категории из записи и передавая его в переменную. Затем используйте эту переменную в вашем запросе для постов в сайдбаре. Посмотрите на глобальную переменную $post для работы с таксономиями или используйте get_term_by(), чтобы получить весь объект термина, а затем извлеките slug или ID с помощью чего-то вроде $var = $taxObject->slug; Я бы поместил это в счетчик, чтобы это выполнялось только для первой записи на странице.

curtismchale curtismchale
7 февр. 2011 г. 17:35:30

Хмм, я не пытаюсь отображать записи, я пытаюсь отобразить ежемесячные архивы, вот так http://nikibrown.com/uploads/a0fba9b8d23d24fdfcf76fb5d9eaaab7.png

nikibrown nikibrown
7 февр. 2011 г. 19:11:38
0

Я не уверен, сработает ли это обходное решение: если вместо архива использовать RSS и указать для RSS количество отображаемых заголовков постов.

Легко получить RSS категории - легко указать количество постов.

Нет? Сработает ли это?

7 февр. 2011 г. 19:07:02