Функция wp_get_archives для вывода архива блога

Опубликовано: 01.09.2018

Буквально вчера выполнял очередное задание с GoGetLinks и на одной из страниц превысил допустимое число внутренних ссылок. Глянул так на блог что можно было убрать и понял — архив. Хотя, в принципе, конечно, все это затевалось не ради GGL, сам архив я уже давно хочу как-то модернизировать для всех своих блогов, но никак не нахожу времени чтобы покопаться с паре тройке плагинов и найти оптимальный для себя. Если так призадуматься, то пользы от 10-20 ссылок в сайдбаре на архивы блога не особо много, вряд ли кто-то будет изучать информацию, которая вполне вероятно уже не актуальна. К тому же куда более удобно искать посты по wordpress категориям, тегам или поиску. Лично у меня нет желания убирать архив на совсем, пусть себе статьи линкуются, но хотелось бы разместить его на отдельной странице — что-то вроде карты сайта, но по месяцам. Но сегодня не об этом, расскажу о функции wp_get_archives и ее возможностях.

Итак, функция wp_get_archives используется для отображения архива блога по датам. Информация может выводиться в любом месте шаблона. Синтаксис функции следующий:

<?php wp_get_archives ( $args ) ; ?>

<?php wp_get_archives( $args ); ?>

По умолчанию аргумент имеется значения:

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

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

То есть без каких-либо настроек функция wp_get_archives выводит:

архив по месяцам отображает все доступные ссылки без ограничения в количестве выводит архив в формате списка LI перед каждой ссылкой ничего не добавляется и количество постов за период тоже не показывается

Параметры wordpress функции wp_get_archives могут принимать следующий значения.

type (string) — тип архивных ссылок (дат), которые выводятся:

yearly  — года monthly  — месяцы (по умолчанию) daily  — дни weekly  — недели postbypost  — посты, отображаемые по дате (используется часто в шаблонах wordpress для вывода списка последних постов блога. Про это я уже как-то рассказывал в статье как отображать последние посты и комментарии блога, популярные статьи. http://tods-blog.com.ua/wordpress/lastpost-comments/ alpha  — в алфавитном порядке, то же самое, что и postbypost, но вместо даты статьи отображаются по алфавиту.

limit — количество записей архива для отображения, по умолчанию выводит все.

format (string) — формат ссылок для списка архива, есть такие варианты:

html — в виде обычного списка LI (по умолчанию) option — в виде выпадающего списка (<select> и  <option>) link — в виде тегов <link> custom — свой вариант использует значения параметров before и after.

before (string) — текст, который отображается перед ссылкой, если вы используете формат отображения.

after (string)  — то же самое, что и before, только выводится после ссылки.

show_post_count (boolean) — определяет показывать или нет количество постов в той или иной записи архива. Применимо ко всем типам архива кроме postbypost, может принимать значения:

1 (True) — отображать количество постов 0 (False) — не отображать (по умолчанию)

echo (boolean) — определяет выводить ли результат функции wp_get_archives или нет

1 (True) — по умолчанию выводится 0 (False) — не выводить

В своих блогах я несколько раз касался данной тематики и описывал применение функции wp_get_archives. Про последние посты я уже говорил, также можно глянуть статью про список последних сообщений выбранной категории , ну и приведу парочку стандартных примеров.

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

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

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

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

<?php wp_get_archives ( 'type=daily&limit=15' ) ; ?>

<?php wp_get_archives('type=daily&limit=15'); ?>

Отображаем последние 20 постов:

<?php wp_get_archives ( 'type=postbypost&limit=20&format=custom' ) ; ?>

<?php wp_get_archives('type=postbypost&limit=20&format=custom'); ?>

Отображаем архив в виде выпадающего списка по месяцам, где для каждого указано число постов:

<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'> <option value=""> <?php echo attribute_escape (__ ( 'Select Month' ) ) ; ?> </option> <?php wp_get_archives ( 'type=monthly&format=option&show_post_count=1' ) ; ?> </select>

<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'> <option value=""><?php echo attribute_escape(__('Select Month')); ?></option> <?php wp_get_archives('type=monthly&format=option&show_post_count=1'); ?> </select>

Выводим все статьи блога в алфавитном порядке (можно использовать в какой-то степени в качестве карты сайта):

<?php wp_get_archives ( 'type=alpha' ) ; ?>

<?php wp_get_archives('type=alpha'); ?>

Если вам нужно изменить параметры базового виджета Архива в WordPress, то можно использовать хук widget_archives_args. Следующий пример позволяет выводить в сайдбаре архив по годам с ограничением числа записей = 7. Добавить код нужно в functions.php.

function filter_widget_archives_args ( $args ) { $args [ 'type' ] = 'yearly' ; $args [ 'limit' ] = '7' ; return $args ; } ; add_filter ( 'widget_archives_args' , 'filter_widget_archives_args' , 10 , 1 ) ;

function filter_widget_archives_args( $args ) { $args['type'] = 'yearly'; $args['limit'] = '7'; return $args; }; add_filter( 'widget_archives_args', 'filter_widget_archives_args', 10, 1 );

Вот, в принципе, и все:) Если есть какие-то вопросы, задавайте в комментариях. Лучший способ разобраться в работе функции wp_get_archives попробовать ее на практике.

P.S. Постовой. Для любителей почитать предлагаем интересный проект, где можно скачать электронные книги олнайн. На сайте есть разбиение по жанрам и авторам — искать достаточно легко.

Качественная декоративная косметика, женская и мужская парфюмерия в интернет магазине Makeup, бесплатная доставка по Украине.

rss