wp_get_archives() — выводит список ссылок на архивы постов — навигацию по архивам

Функция позволяет реализовать различными способами навигацию по страницам архивов постов на сайте.

wp_get_archives($args = '')

Значения параметра $args по умолчанию:

$args = array(
	'type'            => 'monthly',
	'limit'           => '',
	'format'          => 'html', 
	'before'          => '',
	'after'           => '',
	'show_post_count' => false,
	'echo'            => 1,
	'order'           => 'DESC'
);

По умолчанию функция выводит ссылки на страницы архивов по месяцам в виде <ul> маркированого списка без ограничения по количеству. Ссылки выводятся в убывающем порядке (т.е. более свежие в начале списка, более старые — в конце).

Параметры массива $args:

type
(строка) В каком виде нужно выводить ссылки:

  • monthly — список архивов по месяцам (по умолчанию),
  • yearly — список архивов по годам,
  • daily — по дням,
  • weekly — по неделям,
  • postbypost — выводит ссылки на посты, отсортированные по дате,
  • alpha — выводит ссылки на посты, отсортированные по алфавиту (по заголовку).
limit
(целое число) Количество ссылок, которые нужно отобразить. По умолчанию — все.
format
(строка) В каком виде вывести ссылки. Может принимать значения:

  • html — HTML список <li>,
  • option — в виде выпадающего списка <select>, при этом выведены будут только элементы <option> с атрибутами value равными ссылками на соответствующие страницы архивов, тег<select> кстати надо будет добавить самому (подробнее в примерах),
  • link — каждая ссылка будет добавлена в тег <link>, в этом случае они не будут отображаться на сайте,
  • custom — ссылки просто идут подряд.
before
(строка) Текст или HTML-код, который будет автоматически добавлен перед каждой ссылкой. Этот параметр можно использовать только если format равен html или custom.
after
(строка) Текст или HTML-код, который будет автоматически добавлен после каждой ссылки. Использовать только если параметр format равен html или custom.
show_post_count
(логическое) Нужно ли рядом с каждой ссылкой отображать количество содержащихся постов. Не работает, если type равен postbypost или alpha.
echo
(логическое)

  • true — вывести результат действия функции (по умолчанию),
  • false — возвратить;
order
(строка) Направление сортировки. Параметр игнорируется, если type равен alpha.

  • ASC — по возрастанию (А-Я),
  • DESC — по убыванию (Я-А) (по умолчанию).

Примеры

Выводим список архивов за последние двенадцать месяцев:

wp_get_archives( array( 'limit' => 12 ) );

Список архивов за последние 3 года (выводятся ссылки только на страницы архивов по годам):

wp_get_archives( array( 'type' => 'yearly', 'limit' => 3 ) );

Используя эту функцию, мы также можем просто вывести свежие записи на блоге:

wp_get_archives( array( 'type' => 'postbypost', 'limit' => 10 ) );

Уверен, на многих сайтах вы видели выпадающий список архивов, при выборе месяца в котором происходил автоматический переход на страницу этого месяца. Реализовать это совсем нетрудно:

<select onchange="document.location.href=this.options[this.selectedIndex].value;">
	<option value="">Выберите месяц...</option> 
	<?php wp_get_archives( array( 'type' => 'monthly', 'format' => 'option', 'show_post_count' => 1 ) ); ?>
</select>

Выведем все посты на блоге, отсортированные в алфавитном порядке:

wp_get_archives( array( 'type' => 'alpha' ) );

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 4

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал