В недавнем прошлом мы рассказывали почему дубли метатегов title и description негативно влияют на оценку сайта поисковыми системами и как устранить эту проблему в CMS Joomla.
Этой статьей мы продолжаем тему по доработке CMS Joomla и расскажем как решить задачу по устранению дублей метатегов title и description в компоненте электронной коммерции для Joomla - Virtuemart.
Virtuemart - очень популярный компонент для организации на сайте каталога товаров и услуг, онлайн-заказа, полноценного интернет-магазина и даже маркет-плейса с несколькими независимыми продавцами.
К сожалению, в стандартном компоненте Virtuemart имеется характерная для Joomla недоработка. Она заключается в следующем: при наличии нескольких страниц в разделе каталога на все эти разделы метатеги title и description распространяются одни и те же.
Конечно можно разместить все товары на одной странице раздела. Но это хорошо, если товаров не более 10-20. А если их более 100, то такая длинная страница будет долго загружаться и раздражать пользователя необходимостью бесконечно прокручивать ее вверх и вниз.
Поэтому мы предлагаем доработать php код компонента Virtuemart
Мы покажем на примере бесплатного шаблона HELIX 3.0.2 разработчика Joomshaper. Почти все современные шаблоны для Joomla устроены примерно одинаково, поэтому способ для HELIX подойдет и для большинства других.
В шаблоне можно активировать функционал, заменяющий отображение контента из базовой части компонента Virtuemart: в разделе "Шаблоны" выбрать Параметры шаблона:
В параметрах выбрать вкладку "Создать переопределение" и создать переопределение com_virtuemart, кликнув по указанной ниже на картинке ссылке:
Теперь, создав переопределение, можно внести исправление в шаблоне в макет отображения каталога компонента Virtuemart и не беспокоиться о том, что это исправление макета пропадет при очередном обновлении Virtuemart . При обновлении непосредственно шаблона HELIX дубликаты отображения не изменяются и не обновляются.
Теперь перейдем непосредственно к исправлению, а точнее к доработке кода.
В файле default.php по адресу template/ваш шаблон/html/com_virtuemart/category/default.php в конце оригинального кода добавляем свой код:
Воспроизведем его в текстовом формате для удобства копирования:
<?php
$numpage= $this->vmPagination->getResultsCounter ();
$document = JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$titletext =': '.$numpage;
$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);
?>
Что делает этот код: берем метатег title из названия раздела каталога Virtuemart, добавляем к нему информацию по разбиению на страницы. Таким образом получаем для каждой из страниц каталога уникальный заголовок title.
Аналогичную информацию добавляем в содержимое метатега description (если оно есть). В итоге получаем уникальное содержимое метатега description на каждой странице, независимо от того было ли оно вообще.
Таким образом модифицируя один php-файл, мы решили задачу по получению уникальных и неповторяющихся метатегов title и description в каталоге компонента Virtuemart.
Напоминаем: перед модификацией кода своего сайта сделайте резервную копию!
Метатеги title и description имеют важное значение и не стоит ими пренебрегать.
Если вам необходима услуга по модификации вашей CMS для устранения проблемы дублей заголовков и описаний страниц, то обращайтесь в нашу компанию: