Как сделать карту сайта в виде архивов для WordPress без плагинов

Разместил / Просмотров: 1 984


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

Я как обычно начинаю отказываться от плагинов. У меня стоял плагин, который автоматически делал данную карту сайта, но единственное, что меня не устраивало это формат сортировки записей. Они сортировались по рубрикам. Подробнее: название рубрики, и отображение всех записей которые находятся в ней.

Мне больше нравится сортировка по месяцам, а именно название месяца и все отображение всех записей, которые были опубликованы в этот месяц. Так как я в php не силён, я погрузился в поиски данного кода, оказалось его не так легко и найти, но несколько дней мучений и попыток всё же дали свои плоды, и теперь Вы можете полюбоваться тем, что у меня получилось. Посмотреть мою новую карту сайта Вы можете тут.

Если Вас устраивает такой формат, я научу как её сделать. Сразу скажу, что тут ничего сложного нет. Ну а теперь, поехали.

Карта сайта для WordPress с помощью архивов и без плагинов.

Демо

PHP

С самого начала нам нужно зайти в админку нашего блога, затем во Внешний вид и редактор, там найти файл page.php и открыть его. Затем на рабочем столе создать текстовый документ и скопировать в него все содержимое page.php.

Далее в нашем текстовом документе нужно найти вот эту строчку <?php the_content(); ?> и вместо неё вставить вот этот код:

< ?php
$counter = 0;
$ref_month = '';
$monthly = new WP_Query(array('posts_per_page' => -1));
if( $monthly->have_posts() ) : while( $monthly->have_posts() ) : $monthly->the_post();

if( get_the_date('mY') != $ref_month ) {
 if( $ref_month ) echo "\n".'';
 echo "\n".'<h3>'.get_the_date('F. Y').'</h3>';
 echo "\n".'<ul>';
 $ref_month = get_the_date('mY');
 $counter = 0;
 }

if( $counter++ < 100 ) echo "\n".' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>';

endwhile;
echo "\n".'</ul>';
endif;
?>

Давайте посмотрим, что получилось у меня:

< ?php
/*
Template Name: sitearchives
*/
?>

< ?php get_header(); ?>

<!-- begin colLeft -->
 <div id="colLeft">
 < ?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<!-- Начало .singlecont -->

<div class="singlecont">
<h1 class="home">< ?php the_title(); ?></h1>
<div class="hrdown"></div>

<div class="textPreview">
< ?php
$counter = 0;
$ref_month = '';
$monthly = new WP_Query(array('posts_per_page' => -1));
if( $monthly->have_posts() ) : while( $monthly->have_posts() ) : $monthly->the_post();

if( get_the_date('mY') != $ref_month ) {
 if( $ref_month ) echo "\n".'';
 echo "\n".'<h3>'.get_the_date('F. Y').'</h3>';
 echo "\n".'<ul>';
 $ref_month = get_the_date('mY');
 $counter = 0;
 }

if( $counter++ < 100 ) echo "\n".' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>';

endwhile;
echo "\n".'</ul>';
endif;
?>
< ?php endwhile; else: ?>
<p>< ?php _e('Sorry, no posts matched your criteria.'); ?></p>
< ?php endif; ?>

<div class="hrdown"></div>
</div><!-- Конец .синглконтент -->

</div>
</div>

<!-- Конец colleft -->

< ?php get_sidebar(); ?>

< ?php get_footer(); ?>

Затем следует сохранить наш текстовый документ под названием sitearchives.php.

Если у Вас в месяц выходит более 100 записей, то Вам нужно отредактировать вот эту строчку if( $counter++ < 100 ) где цифра 100 это количество отображаемых записей в месяц. Если у Вас в месяц получается меньше 100 записей, тогда редактировать ничего не нужно.

Установка

У нас получился новый файл для карты сайта из архивов для WordPress — sitearchives.php. Сейчас нам нужно его скинуть в папку с установленной темой. На Вашем хостинг аккаунте нужно зайти в корневую папку сайта затем в wp-content, далее в themes, теперь находим папку с названием нашей темы и скидываем туда sitearchives.php.

Скинули? Ура :-) Теперь идём в админку блога потом в Страници и Добавить новую. Там вводим название нашей страницы, например «Архивы» или Карта сайта, как Вам больше понравится. Теперь в блоке с правой стороны под названием «Атрибуты страницы» и в поле «Шаблон» выбираем sitearchives.

Теперь нажимаем на «Опубликовать» и любуемся нашей новой картой сайта отсортированной по месяцам.

Друзья, вот и всё, что хотелось сказать по этому поводу. Не знаю как Вам но мне очень нравится данный стиль сортировки записей. Надеюсь и Вам понравится.

Если у Вас возникнут какие либо вопросы обязательно задавайте их в комментариях, ну а теперь до скорых встреч.