Делаем карту сайта для WordPress без плагина

Здравствуйте, уважаемые друзья.

В данной статье я покажу, как сделать карту сайта для WordPress без плагина.

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

И в данном материале я покажу, как избавиться от плагина для создания HTML карты - Dagon design sitemap generator.

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

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

Теперь рассмотрим все в текстовом варианте

Создаем шаблон страницы

Чтобы сделать данную вещь без плагина, нам нужно создать шаблон страницы, который будем выбирать при ее создании. Так как карта сайта является страницей, то нужно взять файл, отвечающий за вывод страниц в вашем шаблоне оформления. За это отвечает файл page.php.

Создаем копию файла и присваиваем ему любое другое название. Я назову sitemap.php.

Это тот же файл page.php, только с другим названием. Далее необходимо отредактировать его содержимое, разместив в нем 2 части кода.

Первую часть необходимо вставить в самое начало файла перед строчкой <?php get_header();?>.

Вот, как это будет выглядеть в самом файле.

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

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

За это отвечает следующий код.

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

Строки 2 и 3 отвечают за параметры исключения страниц. То есть, если нам не нужно отображать какие-то страницы и записи, то в данных строчках нужно указывать идентификаторы (ID) тех страниц и записей, которые нужно исключить из карты.

Как видим, во второй строке и прописал идентификаторы страниц 28 и 9 - это страницы благодарности за первый комментарий и самой карты сайта соответственно.

ID можно узнать следующим образом. Находясь на нужной странице просто наведите на пункт в верхнем админ-баре "Редактировать запись" и снизу покажется ссылка, в которой будет номер идентификатора.

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

Если же необходимо скрыть записи, то делается все аналогично, только ID вписывается в 3ю строку. Например, $exclude_posts = array(77, 31), где 77 и 31 идентификаторы записей.

Кроме этих 2х параметров необходимо сделать еще вывод ссылки на XML карту. За это отвечает последняя строка в коде. В ней вписываем название своего домена и все будет работать.

После того, как вы пропишите свои параметры, можно смело размещать данный код в ранее созданном файле.

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

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

Лично я сначала вывожу контент на странице, то есть какое-то предисловие и пожелание, а потом уже список публикаций. Поэтому, я размещаю код после вывода контента.

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

В моем файле вывод контента осуществляется с помощью следующего кода.

Сразу после него я и разместил вторую часть кода. В итоге, все содержимое файла у меня расположилось следующим образом. Даю и код файла и скриншот, чтобы вам было легче сориентироваться.

Вот код.

А вот скриншот. Нажмите для увеличения.

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

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

А мы двигаемся дальше. После того, как вставили коды и сохранили файл, нужно загрузить его на хостинг, используя любой удобный для вас ftp клиент. Я пользуюсь для таких целей Filezilla.

Кода файл будет на хостинге среди остальных файлов вашего шаблона, можно создавать саму страницу карты сайта.

к содержанию ↑

Создаем страницу карты из созданного шаблона

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

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

На этом процесс создания HTML карты сайта без плагина закончился. Все достаточно просто.

Необходимо лишь создать копию файла page.php и разместить в нем 2 части кода, предоставленного выше. Затем создать саму страницу, выбрав при этом нужный шаблон. Все достаточно просто.

Жаль, что нельзя также создать и XML карту. Нужно использовать только плагины. Хотя, если вы используете плагин All in one seo pack для оптимизации сайта, то в нем имеется модуль карты сайта, активировав который вы сможете удалить плагин Google XML sitemaps.

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

В одной из следующий статей я покажу процесс создания формы обратной связи без плагина таким же способом. Также создадим шаблон файла и разместим там 2 части кода. Получится точно такая же форма, как у меня сейчас. Проста я и рабочая.

На этом все, друзья! Жду вас в комментариях.

С уважением, Константин Хмелев!

40 лет Победы51937Украина, Днепропетровская обл., г. Днепродзержинск,+38 093 338 11 41
Комментариев: 40
  • Спасибо, реально помог. Пробовал многие варианты, даже с добавлением css стилей и прочей лабуды - но твой пост реально помог. У себя карту сделал отлично. А еще прочитал твою историю в бизнесе - ты молодец. Успехов.

    • Не за что. Если еще что-нибудь нужно, обращайся. Сделаю материалы)

  • Здравствуйте, Константин! Всё сделала как вы написали , но почему то на этой страничке содержания сайта в шапке вышел первый код, который нужно было вставить. Подскажите, как его убрать?

    • Здравствуйте!

      Опишите проблему более конкретно, пожалуйста. Я ничего толком не понял. В чем суть проблемы?

      Насколько я могу предположить, то на самом сайте у вас стала отображаться первая часть кода в таком виде, как она есть?

      • Да, отображался код наверху, но я решила проблему, нашла на др. сайте код, вставила и у меня всё хорошо заработало. Возможно, в Вашем коде ошибка?

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

          Кстати, желательно бы в вашей карте сайта реализовать открытие ссылок в новой вкладке, а также добавить ссылку на xml карту.

          • Спасибо,Константин за подсказку! Я пока Ваш код установила на тестовом сайте, на sudelafrance я хочу поменять шаблон и поэтому сначала всё пробую на др. сайте. Вот только проблема у меня с сайтом основным, там я не могу просматривать шаблоны, у меня появляется белое поле при просмотре любого шаблона и я не знаю, что делать. Вопрос конечно не по теме, но возможно вы знаете почему это происходит, так тех.поддержка не смогла мне помочь...

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

          • Хорошо, спасибо, я всё попробую!

  • У меня сверху над шапкой появляется

    • В комментариях не отображается, но это первый код (с названием Карта)

    • НЕ понял, о чем речь. Пожалуйста, подробнее)

  • Над шапкой блога появляется строчка кода: ....... Template Name: Карта ( всё содержимое первого кода который надо вставить сверху)

    • Скиньте на почту свой измененный файл. Я гляну. Судя по всему, вы что-то не так сделали. Почта: info@kostyakhmelev.ru

  • Спасибо, всё получилось. А как увеличить отступ текста от края, а то получилось так, что все строчки без отступа?

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

  • Здравствуйте, Костя. У меня не получается вставить код №2 в файл page.php. Никак не получается найти ему место. Код №1 вставил без проблем, а вот со вторым... Уже и видео Ваше смотрел и всё равно не могу понять куда его нужно прописать. Буду признателен Вам за помощь.

    • Здравствуйте. Можете написать мне на почту данные от вашего сайта (FTP + данные к админке). Как появится свободная минутка, я вам помогу.

  • Константин, у меня получилось, что страница карты сайта не отформатирована так же, как остальной контент, нет полей и отступов.
    Что нужно сделать, чтобы она выглядела нормально?

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

  • Здравствуйте, Константин. Согласен, что большинство плагинов сильно нагружают сервер, но не обязательно каждый раз кодить всё самому. Для создания карты сайта сейчас использую русский плагин от ребят из wp-puzzle.com, о котором, как ни странно, узнал из авторитетного буржуйского wpbeginner.com. Это плагин Hierarchical HTML Sitemap. По скорости работы и нагрузке на хостинг плагин не тяжелее самописного кода. Рекомендую присмотреться!

    • Данный плагин видел, но не вижу смысла для себя его использовать. Да и вообще, сейчас я не вижу смысла делать что-то кодом. Исключением является лишь та часть плагинов, которая имеет много лишнего функционала, что действительно создает лишнюю нагрузку. Тогда лучше вшить код в верстку, который будет выполнять только необходимую поставленную задачу.

      • Дело в том, что сейчас под вордпресс существует десятки тысяч плагинов, с помощью которых можно делать практически всё, что душе угодно. Но 99% из них абсолютно безжалостны к ресурсной части, в результате чего и появилось мнение, что плагины нагружают сервер. Хотя на самом деле, плагин это и есть код, вопрос только в том, как этот код написан и продумана реализация функционала.
        Вот чем и зацепил меня Hierarchical HTML Sitemap - продуманный функционал, чистенький и простенький код, минимальная нагрузка на сервак.

        • Плагин ничем не отличается от того самого кода, который вы размещаете в файлы шаблона, чтобы не ставить плагин. Поэтому, в большинстве стандартных ситуаций в избавлении от плагинов нет смысла. Плагин - тот же самый код, который грузится из отдельного файла, а не из файла шаблона. Вопрос кроется в лишнем функционале плагина. Если он выполняет много функций, а вам нужна лишь одна, то зачем ставить такой плагин. Тогда сторонний од будет грузить сайт и имеет смысл плагин не ставить, а использовать код. Появилась такое мнение из-за элементарного незнания и опору на мнение других блоггеров.

          • И я о том же :) У вас интересный блог, буду заглядывать!

  • Здравствуйте, Константин как можно изменит цвета Ссылки в карта сайта?? у меня надписи Публикации Категория Страницы цветы белый а ссылки цвет не такой хотел другой поставит

    • Идете в файл стилей шаблона, ищите коды ссылок, заголовков и т.д., задаете им другой цвет. В 2х словах не напишешь, а тем более без ссылки на страницу сайта. За ссылки отвечает тег "a", а за заголовки я не могу вам точно сказать, т.к. они у вас могут выводится в самых разных тегах, как текстовых, там и в заголовочных.

  • Здравствуйте Константин.Карту сайта создал все нормально. Спасибо. Потом попытался создать карту сайта в формате XML плагин All in One SEO Pack 2.3.2.3 у меня стоит. Других плагинов нет. Активизировал XML карты сайта в этом плагине. Затем попытался получить XML карту. Получил сообщение на новой странице что запрошенный url/sitemap.xml не был найден. Действительно файл не был создан.Одновременно в админ панели в разделе управления "XML карта сайта " прочитал сообщения "Примечание: Вы используете динамическую генерацию для поддержания актуальности карты сайта, статический файл карты не будет создан." и второе "Динамическая генерация карты сайта, похоже, использует неверные rewrite rules (правила перезаписи), пожалуйста, отключите все другие плагины и сбросьте настройки постоянных ссылок." Если нетрудно подскажите в чем дело?

  • Приветствую. Вчера я спрашивал о том что не видна карта сайта в виде XML , Прошу не заморачиваться так ка уже разобрался все работает.

    • Здравствуйте. Отлично)

    • Подскажите как разобрались?

    • Здравствуйте Сергей. А как вы разобрались ? У меня такая же проблема.

  • Я сделал проще. Просто предоставленный код под номером 2 тупо вставил в созданную страницу используя НЕ визуальный редактор и НЕ кодовый, а простой текстовый редактор wordpress Результат смотрите здесь http://autoschool-moscow.ru/news/sitemap Спасибо за наводочку!

  • Огромное спасибо за столь полезную статью! Я раньше использовал плагин. Потом решил немного поэкспериментировать: вместо плагина сделал карту по Вашему совету. Итог - сайт начал грузить на 5% быстрее.

  • Увы, но код не работает с подразделами, если в разделе есть подразделы то вывод списка тем дублируется. В главном разделе показываются все темы из подразделов.

    Еще бы отлично было если бы сортировка разделов и тем в них шла по алфавиту, включая подразделы, на данный момент нет древовидного вывода категорий (как в том же модуле Dragon Sitemap generator) и названия тем выводятся не по алфавиту.

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

    • В Dragon Sitemap generator есть древовидный вывод, сам использую данный плагин на всех сайтах и нигде проблем с этим нет. Да, данный код некорректно работает с подрубриками. Я в последнее время не заморачиваюсь со всякими кодами, ставлю проверенный набор плагинов и спокойно наполняю сайт. И сайты грузятся очень быстро.

  • Здравствуйте, а как сделать чтобы старые статьи сверху были, а новые снизу. Обратная сортировка. Заранее спасибо!

    • Здравствуйте. Не знаю, как это реализовать.

  • Здравствуйте Костя.
    Данный код работает на Ура.
    Но у меня в карте сайта идет дублирование категорий. Т.е Основная категория показывается с дочерними категориями и их постами, и дочерние категории с теми же постами.
    Как запретить вывод отдельных категорий, ведь идет дубляж страниц.
    С уважением Анатолий

    • Данный код действительно делает дублирование, если используются подкатегории. Как это исправить в этом коде, сказать не могу, т.к. я не верстальщик, а это именно их дело.

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

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