Спасибо разработчикам Joomla 3 и выше за создание классного бесплатного движка, но мне всегда хотелось узнать, что ни курят во время работы? Явно не табак, так как с колокольни Seo некоторые вещи неадекватны. Так, сложно понять, почему по дефолту в статьях Joomla 3 название материала выводится в H2, а название категории обрамлено в H1. Сегодня этот косяк отправим к праотцам правкой кода default.php.
Переопределение default.php
Файл default.php, который отвечает за вывод статей, находится по прописке:
Components/com_content/views/article/tmpl/…
Можно его править прямо на месте, но лучше выгрузить с хостинга, внести правки и загрузить по другому адресу:
templates/ваш шаблон/html/com_content/article/…
Так мы создадим переопределение, и файл default не будет слетать при обновлении Joomla. Долго мыслить тут не стану, скажу только, что запросы CMS отправляет сначала в папку html шаблона и если там находятся системные файлы, то читает их. Короче, отправив файл по пути «ваш шаблон/html/com_content/article/…» нормальный вывод заголовка H1 не слетит при update сайта.
Правка кода
Теперь правим код default.php. На 19-ой строке находим:
$user = JFactory::getUser();
И после этой строки без пробела вставляем:
$input = JFactory::getApplication()->input;
$view = $input->get('view');
Далее ищем строку 31 и удаляем код:
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
Эта строка отвечает за вывод в статье названия категории. Лично я к этому решению не имею никаких горячих чувств, зачем требуется название категории в статье – не знаю. Если у вас мнение другое, то можете оставить код, но изменить H1 на H2 или как душе угодно.
Можете на этом шаге скушать твикс и посмотреть, как выглядит статья сайта. Название категории вверху пропало, но название статьи ещё отображается в H2. Для решения вопроса идём в коде default ниже и ищем строки 53-55:
<h2 itemprop="headline">
<?php echo $this->escape($this->item->title); ?>
</h2>
Они, родные, и отвечают на отображение названия статьи. Заменяем H2 на H1 и жизнь обретает новые краски!
Теперь у нас на сайте всё в лучших традициях классического Seo – название статьи = H1, а H2 можете вставлять в материале вручную.
H1 в категориях
Для нормального вывода заголовка H1 в категориях Joomla 3.5 и выше проделывать сложных манипуляций с кодом не придётся. По умолчанию главный заголовок дублирует Title. Если жить хочется лучше и есть желание сделать H1 более коротким и ёмким, то:
- Менеджер меню,
- Редактировать пункт меню,
- Параметры страницы,
- Заголовок страницы.
Последний пункт и станет показывать H1, для нормального оформления Title советую отдельно прописать для каждой категории «заголовок страницы в браузере». Title делайте расширенным, H1 ёмким и острым, как наконечник индейского копья.
Эти правила точно работают в Joomla 3.5-3.8 – ниже не помню, выше не знаю.