Архивные записи в WordPress

Помнится, зимой мы с Altesack очень долго бились над тем, что бы архивные записи выводились не в виде ленты, а в виде списки без постраничной разбивки. Т.е. при клике на определённый месяц (или год, день) выводился список постов за этот период. Естественно, описать сразу эти манипуляции я не удосужился, а потом просто забыл.
Думаю, таки надо это сделать.
Для начала, как в сайдбар вывести архив. Если тема поддерживает виджеты, то всё очень просто: активируем одноимённый виджет, сохраняем изменения и дело в шляпе. Если же не поддерживает, то в файле sidebar.php прописываем следующие строки:


	
    < ?php wp_get_archives('type=monthly&show_post_count=1'); ?>

Ну, и CSS редактируем по собственному вкусу.
Эти строки добавят помесячный список в сайдбаре с количеством записей за этот месяц.
Далее открываем index.php и пересохраняем с названием date.php. Ищем в нём основной вывод. Типа такого:

< ?php if (have_posts()) : ?> < ?php while (have_posts()) : the_post(); ?>

< ?php the_title(); ?>

< ?php the_time('d.m.Y') ?> от < ?php the_author() ?>


< ?php the_content('Читать полностью »'); ?>

Рубрики: < ?php the_category(', ') ?> | < ?php edit_post_link('Редактировать','','|'); ?> < ?php comments_popup_link('Комментариев нет »', '1 Комментарий »', 'Комментарии (%) »'); ?>

< ?php comments_template(); ?>< ?php if(function_exists('the_ratings')) { the_ratings(); } ?>
< ?php endwhile; ?> < ?php else : ?>

Не найдено

Извините, но у нас нет того, что Вы здесь ищете.

< ?php endif; ?>

И вместо этого куска благополучно вставляем следующий:

< ?php if(is_day()) { query_posts('year='.get_the_time('Y').'&monthnum='.get_the_time('m').'&day='.get_the_time('d').'&posts_per_page=-1' ); } ?> < ?php if(is_month()) { query_posts('year='.get_the_time('Y').'&monthnum='.get_the_time('m').'&posts_per_page=-1' ); } ?> < ?php if(is_year()) { query_posts('year='.get_the_time('Y').'&posts_per_page=-1' ); } ?> < ?php if (have_posts()) : ?> < ?php else : ?>

Не найдено

Извините, но у нас нет того, что Вы здесь ищете.

< ?php endif; ?>

Собственно, и всё шаманство! 🙂

Запись опубликована в рубрике HOWTO, интернет с метками , , . Добавьте в закладки постоянную ссылку.

7 комментариев на «Архивные записи в WordPress»

  1. Tatarnikoff говорит:

    Очень полезная информация! Я считаю, это должно быть включено в стандартную поставку WordPress 🙂

  2. Ptah говорит:

    Арбайтен нихт.
    Когда заливаю файл date.php и кликаю на любую архивную строку – выдает код и надпись “ничего не найдено”
    Архив у меня реализован через виджет. Причем на втором сайдбаре. Может проблема в этом? Попробовал поменять 19 строку в date.php – выдает ошибку. Help 🙂

  3. Dandr говорит:

    Скинь мне на мыло свой date.php. В zip-архиве. Буду дома – гляну.

  4. Ptah говорит:

    удалил все пробелы, теперь ничего не происходит. Все осталось как было до этого.

  5. Dandr говорит:

    Так, слей-ка ты мне вообще всю твою тему. Архивом. Постараюсь вечером глянуть.

  6. Ptah говорит:

    спасибо за помощь, щаз скину

  7. Dandr говорит:

    Ptah, сорри, вот только приехал… Завтра гляну.

Добавить комментарий