Есть несколько способов настроить HTML карту сайта для CMS WordPress. Можно установить модуль и приукрасить его на CSS. Но для таких мелочей этот подход в корне неправильный т.к. каждый новый модуль несет дополнительную нагрузку на сервер.
Шаблоны WordPress позволяют писать PHP код в самих файлах шаблонов и именно данный способ будет описан в этой статье.
Я сторонник минимального кода, поэтому код будет в таком же стиле. Нашел готовое решение и переработал под себя. Инструкция ниже.
Подготовка шаблона
Файл
В папке с шаблоном /wp-content/themes/[my_template] Создаем файл с любым названием — логично sitemap.php
В самом верху открываем PHP и в блоке комментариев указываем название шаблона в следующей структуре.
/*
Template Name: HTML Карта сайта
*/
Блок с комментариями и константа Template Name является обязательным параметром. Скрипт движка находить эти значения и работает с ними.
Файл шаблона самый обычный. Расписывать не буду — в сети полно информации по данной теме.
Настройка движка
Заходим в раздел «страницы» и в блоке атрибуты страницы находим наш шаблон. Выбираем его и теперь вместо содержания редактора текста для данной страницы будет подставляться содержимое нашего файла sitemap.php
Код HTML карты сайта
Код достаточно простой. Отдельный циклы для обычных страниц и для категорий. Заголовки категорий выводятся с ссылками на них. Инструкция ниже.
<div class="htmlsitemap">
<h2>Страницы</h2>
<ul class="htmlsitemap-list">
<?php
$pages = get_pages(array('posts_per_page' => '-1'));
foreach ($pages as $page) { ?>
<li><a href="<?= get_permalink($page->ID) ?>"><?= $page->post_title ?></a></li>
<?php } ?>
</ul>
<?php
$cats = get_categories();
foreach ($cats as $cat) { ?>
<h2><a href="<?= get_category_link($cat->term_id) ?>"><?= $cat->cat_name ?></a></h2>
<ul class="htmlsitemap-list">
<?php $posts = get_posts(array('category' => $cat->term_id, 'posts_per_page' => '-1'));
foreach ($posts as $post){ ?>
<li><a href="<?= get_permalink($post->ID) ?>"><?= $post->post_title ?></a></li>
<?php } ?>
</ul>
<?php } ?>
</div>
Комментарии