Создание html карты сайта на WordPress без использования плагина.

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

Поскольку сайт включает в себя более 600 записей, то сразу стало ясно, что проблема именно в этом, и нужно искать альтернативу установленному плагину — WordPress Simple HTML Sitemap. Первое, что было сделано – это установлено несколько плагинов из репозитория WordPress, таких как WP Sitemap Page, Easy HTML Sitemap и других, но результат оказался в тот же, ошибка никуда не пропала.

Стало понятно, что перебирать все варианты готовых решений нет никакого смысла и нужно искать способы вывести html карту сайта на WordPress без плагинов. И такое решение нашлось. Ниже привожу пошаговую инструкцию для его внедрения.

Карта сайта в формате html позволяет поисковикам иметь доступ ко всем записям вашего блога, даже со сложной структурой, что позитивно влияет на индексирование вашего ресурса.

Шаг 1. В папке вашей wordpress темы создаем php файл – page-sitemap.php. Путь к файлу должен иметь вид: /wp-content/themes/<Ваша тема>/page-sitemap.php.

Шаг 2. Добавляем следующий код в файл page-sitemap.php.

<?php
/**
 * Template Name: HTML Sitemap Page
 *
 * Create Dynamic HTML Sitemap in WordPress
 */
 
get_header(); 
?>
 
    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">
 
            <div class="html-sitemap">
                 
                <h2>Автор(ы):</h2>
                <ul class="sitemap-authors">
                    <?php wp_list_authors('exclude_admin=1&optioncount=1'); ?>
                </ul>
          
                <h2>Страницы:</h2>
                <ul class="sitemap-pages">
                    <?php wp_list_pages(array('exclude' => '', 'title_li' => '')); // Exclude pages by ID ?>
                </ul>
 
                <h2>Записи:</h2>
                <ul>
                    <?php
                        $categories = get_categories('exclude='); // Exclude categories by ID
                        foreach ($categories as $cat) {
                        ?>
                            <li class="category">
                                <h3><span class="grey">Категория: </span><?php echo $cat->cat_name; ?></h3>
                                <ul class="cat-posts">
                                <?php
                                    query_posts('posts_per_page=-1&cat='.$cat->cat_ID); //-1 shows all posts per category. 1 to show most recent post.
                                    while(have_posts()): 
                                        the_post();
                                        $category = get_the_category();
                                        if ($category[0]->cat_ID == $cat->cat_ID) { ?>
                                            <li>
                                                <?php the_time('M d, Y')?> &raquo; <a href="<?php the_permalink() ?>"  title="<?php the_title(); ?>"><?php the_title(); ?></a> (<?php comments_number('0', '1', '%'); ?>)
                                            </li>
                                        <?php 
                                        }
                                    endwhile;
                                ?>
                                </ul> 
                            </li>
                    <?php } ?>
                </ul>
                <?php  wp_reset_query(); ?>
 
                <h2>Архивы:</h2>
                <ul class="sitemap-archives">
                    <?php wp_get_archives('type=monthly&show_post_count=true'); ?>
                </ul>
            </div>
 
        </main>
    </div>
 
<?php
get_sidebar();
get_footer();

Вверху, закомментировано название шаблона страницы «HTML Sitemap Page».

Разметку данной страницы вы также редактируете согласно своей темы, и добавляете или удаляете блоки, классы и id для всех контейнеров на странице.

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

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

Шаг 3. Идем в админку, переходим в раздел «Страницы» и нажимаем «Добавить новую». Вводим название страницы, title и description, а также редактируем постоянную ссылку в формат «/sitemap». После чего справа в сайдбаре нажимаем вкладку «Атрибуты страницы», и в поле «Шаблон» выбираем созданный нами шаблон с названием «HTML Sitemap Page». Нажимаем опубликовать.

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

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

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

Поделиться в социальных сетях:
Нет комментариев к данной статье

Оставить новый комментарий

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