Битрикс — rel=canonical для страниц разделов

25.07.2018  20:08

В поехавшем Битриксе до сих пор нет возможности прописывать meta-тег rel="canonical" для страниц разделов — такая возможность есть только для детальный страниц. Исправляем это досадное недоразумение костылями. Если используется комплексный компонент, то внутри него дописываем в section.php в любое место такой кусок кода:
// section.php :
if (empty($_REQUEST["PAGEN_2"]) && empty($_REQUEST["PAGEN1_2"])) {//только первые страницы кроме постранички
	$this->SetViewTarget('meta_add');
	echo ' link rel="canonical" href="' . $ _SERVER["REQUEST_SCHEME"] . '://' . $ _SERVER["SERVER_NAME"] . '/catalog/' . $ arResult["VARIABLES"]["SECTION_CODE_PATH"] . '/" / ';
	$this->EndViewTarget();
}
//добавить скобки у тега линк'

или в шаблоне catalog.sections.list добавить:
// в template.php :
$this->SetViewTarget('meta_add');
echo ' link rel="canonical" href="'.$_SERVER["REQUEST_SCHEME"].'://'.$_SERVER["HTTP_HOST"].$arResult["SECTION"]["SECTION_PAGE_URL"].'" / ';
$this->EndViewTarget();
//добавить скобки у тега линк'


В основном шаблоне сайте внутри head прописываем строчечку:
$APPLICATION->ShowViewContent('meta_add');


Таким образом из любых шаблонов любых компонентов в главный шаблон сайта внутрь head можно передать любые данные (meta-теги под микроразметку и социализацию, например).
Вот такая простая колхозная кастомизация Битрикса.

Из смежной тематики: Битрикс — отдельные title для постраничного вывода.
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670) или перепиской в ВК.
1000 р./час.



перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 46  PHP 58  SEO 14  web-программирование 82  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)