Битрикс — как узнать по разделу его SEO свойства

В данной статье речь пойдет не только про SEO свойства раздела, но и про нестандартный способ их получения при помощи API. Когда вы работаете с компонентами битрикса, то часто сталкиваетесь, что свойства для SEO записываются в разных местах — это может быть как дополнительное свойство, так и файл component_epilog.php . Поверьте, встречались и случаи когда мета свойства записывали в header.php 🙂 что усложняло их поиск на проекте.

Что происходило при такой записи мета? Записывался массив прямо в шаблоне, и в дальнейшем выводилось на экран. Делать так я настоятельно не рекомендую, но вы как разработчик должны знать, что предыдущий разраб совершил в прошлом ошибку написав такой код:

а в дальнейшем была проверка:

Зачем я вам показал такой код спросите вы? Чтобы понять, как делать не надо, и что такой код очень сложно поддерживать пользователю — а ведь удобство использования сайта одна из основных целей. Плюс и вам не захочется заниматься такой рутиной как контент, который записывается в header.php 🙂

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

Теперь перейдем к сути статьи. Как вы могли заметить я не назвал самый основной способ в Битриксе, и самый наиболее актуальный — SEO вкладку, которая теперь доступна для элементов и разделов.
Под элементами в данном контексте мы подразумеваем товары, новости, записи блога, а разделы — это категории (тут уже кому как удобнее называть).

ЗАДАЧА: У нас есть компонент который не меняет мета свойства у раздела новостей. Более того, в массиве $arResult нет никаких упоминаний про ID раздела.

Решений несколько, рассмотрим одно из них (по моему мнению, это не самый лучший способ, в идеале дописать код компонента таким образом, чтобы он передавал айди в массив).

Для компонента создаем файл component_epilog.php и пишем следующий код:

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

Теперь наша цель убрать из URL всё лишнее:

Тут мы добавили проверку, если страница разделов не является главной (а это /articles/), то мы убираем ее из URL (который равен например /articles/tehnika/) и в итоге после замен мы получаем строку содержащую tehnika.

Если вы знакомы с апи секций битрикса, то можете по символьному коду узнать всё что вам нужно, в том числе и ID:

Не забываем что указываем $iblock_id и также «CODE» => $SECTION_CODE (tehnika).

Как узнать SEO свойства зная раздел в битриксе

Теперь вернемся к вкладке SEO у раздела. Воспользуемся D7:

И всё что остается, это поменять для раздела мета title, keywords и description:

То есть, что мы делаем — проверяем заполнено ли значение на вкладке SEO — если да, то устанавливаем h1, title а также другие заполненные свойства.

Бонусная задача: выяснилось, что на странице раздела не добавляется в хлебные крошки название раздела, как быть?
Решение: «этого не было в изначальном ТЗ!» 🙂 шутки шутками, но такие вещи вы не могли предугадать. Но выход есть, и он в одну строку:

таким образом мы выводим в конце хлебных крошек, после слова Статьи -> Техника.

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

А теперь полный код:

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

Если на вашем сайте необходимо выполнить настройку по выводу SEO свойств из шаблонов а также формированию мета-тегов - обращайтесь ко мне.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.com/dmitriy/.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

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

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