WordPress — простая HTML карта сайта без модулей

wordpres sitemap html production - WordPress — простая HTML карта сайта без модулей

Есть несколько способов настроить HTML карту сайта для CMS WordPress. Можно установить модуль и приукрасить его на CSS. Но для таких мелочей этот подход в корне неправильный т.к. каждый новый модуль несет дополнительную нагрузку на сервер.

Шаблоны WordPress позволяют писать PHP код в самих файлах шаблонов и именно данный способ будет описан в этой статье.

Я сторонник минимального кода, поэтому код будет в таком же стиле. Нашел готовое решение и переработал под себя. Инструкция ниже. 

Подготовка шаблона

Файл

В папке с шаблоном /wp-content/themes/[my_template] Создаем файл с любым названием — логично sitemap.php

В самом верху открываем PHP и в блоке комментариев указываем название шаблона в следующей структуре.

wordpres sitemap html - WordPress — простая HTML карта сайта без модулей
PHP комментарий для считывания движком
/*
 Template Name: HTML Карта сайта 
*/

Блок с комментариями и константа Template Name является обязательным параметром. Скрипт движка находить эти значения и работает с ними. 

Файл шаблона самый обычный. Расписывать не буду — в сети полно информации по данной теме.

Настройка движка

Заходим в раздел «страницы» и в блоке атрибуты страницы находим наш шаблон. Выбираем его и теперь вместо содержания редактора текста для данной страницы будет подставляться содержимое нашего файла sitemap.php

wordpress html sitemap page - WordPress — простая HTML карта сайта без модулей

Код 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>

Читайте также

Похожие записи

WordPress — SQL запрос для смены адреса сайта
Случается так, что сайт меняет доменное имя. Ничего страшного в этом нет, но WordPress остается привязан к старому адресу на...
WordPress — как изменить разметку отдельных элементов в посте
Посмотрите на расположение картинок и текст их описания на скриншоте выше. Сверстать подобное не составит никакого труда, если это редактор...
WordPress — как лаконично добавить дополнительный класс CSS блокам внутри статьи
Задача: разработать для статей блок с индивидуальным дизайном дабы была возможность выделять некоторый контент. Данный блок должен вставляться в статью...
WordPress SEO Friendly Images — плагин для изображений
SEO Frendly Images — плагин для WordPress, автоматически добавляющий HTML5 разметку для изображений FIGURE, FIGCAPTION (точно не уверен — возможно...
WordPress — правильное подключение скриптов
Есть два варианта, как можно добавить сторонний скрипт в WordPress: классический способ — указать путь в HEAD или перед закрывающим...

Комментарии

Бесполезно писать спамные сообщения. Все комментарии проверяются;
Можно оставлять ссылки (через <a href), если они несут полезную информацию или дополняют статью;

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *