Карта сайта — естественная часть SEO, она позволяет роботам поисковых систем получить доступ ко всем вашим записям, страницам и другим типам записей из одного места. На одном из наших проектом мы используем карту сайта, которая выводит всё на одной странице, при этом используя тогглы для сокрытия ссылок по-умолчанию, поэтому вам нужно будет кликнуть на тоггл, чтобы увидеть ссылку и дату ее публикации. Используя этот способ вы сможете включить в нее любой произвольный тип записи вашего сайта и выглядеть все это будет очень симпатично.
Для того, чтобы создать Sitemap в WordPress без плагина, следуйте следующей инструкции:
Сделайте копию вашего файла page.php шаблона и сохраните его под именем sitemap.php и в самом начале вставьте:
<?php /* Template Name: Карта сайта */ ?>
Далее добавляем немного javascript, которые будут обрабатывать тогглы:
<script type="text/javascript"> $(document).ready(function () { $('#toggle-view li').click(function () { var text = $(this).children('div.panel'); if (text.is(':hidden')) { text.slideDown('200'); $(this).children('span').html('-'); } else { text.slideUp('200'); $(this).children('span').html('+'); } }); }); </script>
Следующий код также добавляем в файл, он будет отвечать за отображение ваших записей и страниц в карте сайта:
<ul id="toggle-view"> <li> <h2>Записи</h2> <span>+</span> <div class="panel"> <ul> <?php $myposts = get_posts('numberposts=-1&offset='.$debut); foreach($myposts as $post) : ?> <li class="sitemap"><?php the_time('d/m/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> </div> <?php //endwhile; ?> </li> <li> <h2>Страницы</h2> <span>+</span> <div class="panel"> <ul> <?php $myposts = get_posts('numberposts=-1&post_type=page&offset='.$debut); foreach($myposts as $post) : ?> <li class="sitemap"><?php the_time('d/m/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> </div> </li> </ul
Если вам нужно добавить произвольные типы записей, то можете добавлять их столько, сколько нужно с помощью следующего кода, при этом необходимо изменить POSTTYPENAME в двух местах на название желаемого типа записей:
<li> <h2>POSTTYPENAME</h2> <span>+</span> <div class="panel"> <ul> <?php $myposts = get_posts('numberposts=-1&post_type=POSTTYPENAME&offset='.$debut); foreach($myposts as $post) : ?> <li class="sitemap"><?php the_time('d/m/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> </div> </li>
И, наконец, добавляем следующий код в файл таблице стилей вашей темы style.css для визуального оформления тогглов:
#toggle-view { list-style:none; font-family:arial; margin:0; padding:0; } #toggle-view h2 { border-bottom:0px; margin-top:15px; margin-top:30px; } #toggle-view h2:hover { color:#ff0000 } #toggle-view li { margin:0px; border-bottom:1px solid #ccc; position:relative; cursor:pointer; list-style-type:none; padding-left:15px; } #toggle-view span { position:absolute; left:0px; top:0; color:#bdbdbd; font-size:28px; font-weight:bold; } #toggle-view span:hover { color:#ff0000; } #toggle-view .panel { margin:5px 0; display:none; }
Последним шагом будет публикация страницы, которая будет выводить вашу Карту сайта. Для этого переходим в “Страницы” > “Добавить новую”, и после указания заголовка страницы и добавления контента (если необходимо), выбираем шаблон для страницы под названием «Карта сайта» из выпадающего списка справа.
Мы надеемся, что эта статья помогла вам добавить карту сайта в WordPress без помощи плагинов.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.