Исправление ссылки canonical в материалах Joomla 3.x

Не буду расписывать, что такое канонические ссылки и зачем они нужны. Если Вы попали на эту статью, вероятней всего, уже знаете, что это такое. Поэтому просто опишу, как привести ваш rel="canonical" в нормальный вид для CMS Joomla 3.x

Исправление ссылки canonical в материалах Joomla 3.x

По умолчанию в данном движке за генерацию канонической ссылки отвечает плагин Система - SEF. Но, почему то генерирует он её довольно-таки "криво". И что бы "кривое" отображение не мешало нашему в дальнейшем, правильному, прежде всего нам нужно ограничить участие плагина.

Для этого мы открываем файл /plugins/system/sef/sef.php и комментируем в нём строку (в моём случае 79):

    // Add the canonical link.
       // $doc->addHeadLink(htmlspecialchars($canonical), 'canonical');
   }  

Теперь добавляем правильный тег caninical на страницу материалов.

Открываем шаблон материала, который обычно расположен

/templates/<имя шаблона>/html/com_content/article/default.php

и после строки JHtml::addIncludePath(JPATH_COMPONENT . '/helpers'); дописываем следующий код:

$doc=JFactory::getDocument();
$doc->addHeadLink(rtrim(JUri::base(),'/').
JRoute::_(ContentHelperRoute::getArticleRoute($this->item->id,$this->item->catid)),'canonical','rel','');

У меня это выглядит вот так:

  $urls = json_decode($this->item->urls);
  JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

     $doc=JFactory::getDocument();
     $doc->addHeadLink(rtrim(JUri::base(),'/').
     JRoute::_(ContentHelperRoute::getArticleRoute($this->item->id,$this->item->catid)),'canonical','rel','');

   // Create shortcut to parameters.
   $params = $this->item->params;

Всё, процедура закончена. Удачи и всего наилучшего.

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


Защитный код
Обновить

Написать нам

Лёгкий спам-контроль
WMmail.ru