Сен
16
38

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

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

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

<?php wp_get_archives( $args ); ?>

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

<?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'); ?>

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

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

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

<?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>

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

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

Хук widget_archives_args

Если вам нужно изменить параметры базового виджета Архива в 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 );

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

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

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 6, средний балл: 4,83 из 7)
Загрузка...

категория Категории: Возможности;
теги Теги: , , , , , .

комментариев 38 к статье “Функция wp_get_archives для вывода архива блога”

  • Tod   23.04.2013

    Натали, если вы про видео с youtube, то в разделе категории не отображаются посты, содержащие видео. То есть на главной выводятся все подряд записи, а в разделе их нет. Если зайти в категорию «Презентации лидеров» то там все видео отображаются.

  • Виктор   14.04.2014

    А как вывести архивы в 2 столбца?

  • Tod   14.04.2014

    Виктор, насколько я помню, единственный способ вывести в 2 столбца — использовать оформление CSS стилями.

  • Николай   18.08.2014

    А если я хочу чтобы не создавались больше на моем сайте страницы с архивом, мне будет достаточно убрать эту самую строчку из header.php?

  • Tod   19.08.2014

    Николай, архив (постов, тегов, категорий) — это всего-лишь форма отображения записей блога. То как будут выглядеть эти страницы задается, как правило, в файле archive.php.

  • Koriolan   10.10.2014

    Скажите, а как при помощи данной функции (или, может быть другой какой) в файле archive.php организовать вывод строки следующего типа:
    «Вы просматриваете записи за октябрь 2014 года»

    или

    «Вы просматриваете записи за 10 октяря 2014 года»

    (склонение мназвания месяца не критично) Важно вывести такую запись в заголовке, а дельше следует цикл выводящий сами записи.

    Спасибо.

  • Tod   11.10.2014

    Koriolan, для отображения такой фразы, в принципе, вообще никакие функции не нужны. В файле archive.php обычно должно находится условие отображения постов по категориям (is_category), тегам (is_tag) и датам. Есть варианты is_month, is_day, is_year и общий is_archive. В общем, добавляете условие либо общее, либо за месяц is_month и в блоке отображения постов с помощью функции the_time, например the_time(‘F, Y’) выводите дату + текст.

  • Денис   29.10.2016

    Спасибо) Очень помог!

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Последние посты
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости