Дизайн та розробка сайту

Карта сайта без плагина – WordPress

sitemap

Доброго времени суток 🙂
Многие из Вас используют плагины для того чтобы сделать страницу на которой выводятся все записи из Вашего блога, так называемая - Карта сайта. Некоторые видели такие страницы и хотят их сделать у себя на сайте. Такая странице удобная для пользователя если ее правильно оформить плюс поисковики тоже спасибо скажут 🙂
Я пробовал ставить когда-то давно всего лишь один плагин, но он популярный и пользуется успехом у владельцев WordPress. Все не плохо, но это плагин, хоть немного, но потребляет ресурсы. Если Ваш блог еще не настолько раскручен и не пользуется успехом, чтобы обеспечить оплату побольше у Вашего хостера, то лишние нагрузки Вам ни к чему. С каждого плагина понемногу и вот Ваше детище грузится как настоящий интернет "монстр". Не зря практически у каждого хостера есть замечание о том, что сайт с посещаемостью в 20 человек может потреблять ресурсов столько же сколько и сайт с посещаемостью 1000.

Кстати, отличительной чертой данного способа есть то, что он выведет записи в виде архивов, то есть разобьет записи по месяцам. Это очень удобно, множество плагинов выводит записи разбивая по рубрикам, а так пользователь может просмотреть последние записи, те которые он не видел.

sitemap

И так приступим.

Для начала нужно создать файл и назвать его к примеру sitemap.php. Данный файл будет новым шаблоном страницы. Чтобы он стал таковым нам нужно открыть его и и в самом начале вставить следующий код.

<?php
/*
Template Name: Карта сайта
*/
 get_header(); ?>

Так мы подключаем шапку и задаем имя шаблону - Карта сайта.

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

<div id="primary">

///Тут внутри цикл///

</div>

Нам нужно вместо цикла вставить следующий код, который как раз таки и выведет нашу карту .

Вот и сам код.

<ul class="sm_bl">
<?php
$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 '<h3>'.get_the_date('F Y').'</h3>';
 $ref_month = get_the_date('mY');
 }
echo ' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>';
endwhile;
echo '';
endif;
?></ul>

Сложного тут ничего нет, цикл выводит функция WP_Query. В начале цикла выводим Дату, а потом список записей.
Данный код заключен в тег ul, так что записи будут выводится в виде списка. Присваиваем класс для стилей, например sm_bl, а для того что бы выделить Дату, заключаем в h3 например.

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

<?php get_sidebar(); ?>
<?php get_footer(); ?>

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

<?php
/*
Template Name: Карта сайта
*/
 get_header(); ?>
<div id="primary">
<ul class="sm_bl">
<?php
$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 '<h3>'.get_the_date('F Y').'</h3>';
 $ref_month = get_the_date('mY');
 }
echo ' <li><a href='.get_permalink($post->ID).'>'.get_the_title($post->ID).'</a>';
endwhile;
echo '';
endif;
?></ul>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Следующим шагом будет добавление стилей для корректного отображения нашей карты. Как обычно их нужно прописать в файл style.css.

/*Карта сайта*/
ul.sm_bl h3{margin:10px 0;font-size:24px;}
ul.sm_bl a{color:#5CB934;font-size:14px;line-height:25px;width:98%;}

Вот по сути и все. Стили как обычно крутим под себя и не стесняемся усовершенствовать 🙂 Если все сделано правильно у Вас получится карта сайта не хуже чем от плагина 🙂
Пример такой карты смотрите у меня здесь
На этом все, спасибо за внимание

Дизайн та розробка сайту

Back to top