Битрикс — 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С-Битрикс 44  PHP 56  SEO 14  web-программирование 80  

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


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