Найти в Дзене
Блог Web-Dev

Как сделать карту сайта sitemap для посетителей в WordPress

Из сегодняшней статьи «Как сделать карту сайта sitemap для посетителей в WordPress» вы узнаете, как сделать карту вашего блога для посетителей. Есть множество модулей, которые ее генерируют, однако они нам не нужны, чтобы лишний раз не перегружать ресурс ненужными данными и в этом посте я объясню, как можно избавиться от плагина ради создания карты сайта для пользователей. Мы выполним простые шаги, после чего на вашем сайте WordPress будет отличная карта сайта, которая возможно будет похожа на ту, что стоит сейчас у вас. Это конечно пустяк, но одним плагином меньше - блог функционирует быстрее. Дабы не томить вас больше, давайте наконец-то осуществим задуманное. Делаем шаблон карты сайта WordPress Для создания нашей карты sitemap без применения плагина, необходимо сформировать образец страницы, который при его построении будем выбирать. Поскольку эта карта по сути очередная страница, то нам необходимо воспользоваться файлом, который в вашей теме оформления выводит страницы. В данном сл
Оглавление

Из сегодняшней статьи «Как сделать карту сайта sitemap для посетителей в WordPress» вы узнаете, как сделать карту вашего блога для посетителей. Есть множество модулей, которые ее генерируют, однако они нам не нужны, чтобы лишний раз не перегружать ресурс ненужными данными и в этом посте я объясню, как можно избавиться от плагина ради создания карты сайта для пользователей.

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

Дабы не томить вас больше, давайте наконец-то осуществим задуманное.

Делаем шаблон карты сайта WordPress

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

Копируем файл и назовем его – map.php. Он такой же как и page, только у него другое имя. После чего надо переделать его содержимое, записав в него два кусочка кода.

Первый кусочек кода нужно установить в начале файла перед вызовом функции get_header().

<?php
/*
Template Name: Карта сайта
*/
?>

Благодаря этому коду имя шаблона появится в редакторе страничек WordPress, где мы сможем его выбрать.

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

Вот этот кусочек кода:

<?php
$remove_pages = '27, 3';
$remove_articles = [60, 22];
?>
<h2>КАРТА САЙТА</h2>
<?php
$cat_arg = [];
$cat_array = get_categories( $cat_arg );
foreach ($cat_array as $cat_value) {
echo "<ul><li><b>Рубрика:</b> <a href=\"".get_category_link($cat_value->term_id)."\">".$cat_value->name."</a>";
$announce_array = get_posts(array('category' => $cat_value->term_id, 'posts_per_page' => '10'));
echo "<ul>";
foreach ($announce_array as $announce) {
if(!in_array($announce->ID, $remove_articles)){
echo "<li><a href=\"".get_permalink($announce->ID)."\">".$announce->post_title."</a></li>";
}
}
echo "</ul></li></ul>";
}
?>
<?php $posts_arg = array('exclude_tree' => $remove_pages, 'title_li' => ''); ?>
<h2>СТАТЬИ</h2>
<ul>
<?php wp_list_pages( $posts_arg ); ?>
</ul>

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

Вторая и третья строка ответственны за параметры ограничения страниц. Другими словами, если нам, к примеру, нужно убрать какие-то записи анонсов и статьи, то в этих местах надо прописать id тех анонсов и статей, которые необходимо убрать. И написанные на этих строках id статей 27 и 3 будут убраны из карты sitemap.

Выяснить какой у страницы идентификатор (ID) достаточно легко. Зайдя на нужную страницу перейдите в "Редактировать страницу" или "Изменить" и там наведите курсор или кликните на URL адрес вверху (только не надо смотреть в настройках) «https://mysite.ru/wp-admin/post.php?post=29&action=edit» после слова post будет id (29).

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

Если надо скрыть записи, то проделываем тоже самое, только ID записываем в $remove_articles. К примеру, $remove_articles = [60, 22], где id записей 60 и 22.

Вслед за тем, как вы укажите свои параметры, можете смело устанавливать этот код в файл созданный ранее.

Его необходимо поставить туда, где выводится контент, показываемый на страницах. Можно поставить его перед кодом выводящий контент, но можете и после. Многое связано с тем, куда вам нужно выводить ваши рубрики и посты, добавленный на эту страницу с помощью редактора. Если его нужно показать перед всем содержимом, то после вывода контента надо вставить код.

Например, если надо сначала показать перечень материалов, а потом контент, тогда скопируйте код перед тем, как вывести контент.

Контент выводится через этот код:

-2

После чего устанавливаем второй кусочек кода. В результате, весь код у меня поместился так, как на картинке внизу:

-3
<?php
/*
Template Name: Карта сайта
*/
get_header(); ?>
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
while (have_posts()) : the_post();
the_content();
?>
<?php endwhile; ?>
<?php
$remove_pages = '27, 3';
$remove_articles = [60, 22];
?>
<h2>КАРТА САЙТА</h2>
<?php
$cat_arg = [];
$cat_array = get_categories( $cat_arg );
foreach ($cat_array as $cat_value) {
echo "<ul><li><b>Рубрика:</b><a href=\"".get_category_link($cat_value->term_id)."\">".$cat_value->name."</a>";
$announce_array = get_posts(array('category' => $cat_value->term_id, 'posts_per_page' => '10'));
echo "<ul>";
foreach ($announce_array as $announce) {
if(!in_array($announce->ID, $remove_articles)){
echo "<li><a href=\"".get_permalink($announce->ID)."\">".$announce->post_title."</a></li>";
}
}
echo "</ul></li></ul>";
}
?>
<?php $posts_arg = array('exclude_tree' => $remove_pages, 'title_li' => ''); ?>
<h2>СТАТЬИ</h2>
<ul>
<?php wp_list_pages( $posts_arg ); ?>
</ul>
</main><!-- #main -->
</div><!-- #primary -->
</div><!-- .wrap -->
<?php get_footer();?>

Теперь нам надо закачать файл с картой на хостинг и мы это сделаем воспользовавшись файловым менеджером на хостинге или применим ftp клиент "Filezilla".

После загрузки файла на хостинг, впору приступать к созданию странички для нашей карты сайта sitemap.

Создание страницы карты сайта с помощью шаблона

Сейчас мы, используя CMS WordPress создадим стандартную страницу, и в редакторе этого движка, где "Документ" находим пункт "Атрибуты страницы", там должен находится наш шаблон. У него должно быть название "Карта сайта". В первой части кода мы написали это название.

-4

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

Вот как это выглядит у меня:

-5

Все довольно легко и просто копируете page.php и устанавливаете написанные выше коды. После выбрав созданный шаблон публикуете страницу.

Здесь я завершаю статью «Как сделать карту сайта sitemap для посетителей в WordPress». Если есть вопросы, то пишите в комментариях.