Разобравшись с тем, как включить вывод названия только определённой категории в виде заголовка страницы материала в Joomla 3, сталкиваемся с тем, что в макетах обычно по умолчанию вывод названий категорий (который берётся из названия пункта меню) настроен как заголовок <h1>
, а заголовки материалов выводятся заголовками <h2>
. После того, как настроим вывод заголовков материалов тегом <h1>
(как это сделать подробно описано в → этой статье), сталкиваемся с тем, что у нас на странице появляется два заголовка <h1>
. И это неправильно. В этой статье рассмотрим, как и что поменять в коде выдачи шаблона страницы, чтобы заголовки категорий отображались тегом <h2>
.
Настройки шаблона Protostar по умолчанию для отображения заголовка страницы
Для того, чтобы убедиться, каким тегом выводятся заголовки страницы (в нашем случае — это заголовок пункта меню, имеющий то же самое название, что и название категории статей), посмотрим в коде страницы:
Таким образом наглядно убеждаемся, что заголовок страницы выдаётся тегом <h1>
. Печалька, но поправимая. Нужно всего лишь найти файл с кодом шаблона выдачи материала.
Исправления заголовка страницы в файле с кодом шаблона Protostar выдачи материала
Заголовок страницы формируется в файле default.php
, который расположен вот тут:
/components/com_content/views/article/tmpl/default.php
В нашем случае нужна строка 31, в которой и происходит вставка кода заголовка, если отображение заголовка включено:
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
</div>
<?php endif;
Теперь понятно, где менять и даже понятно, что: вместо открывающих и закрывающих тегов заголовка <h1>
и </h1>
прописываем <h2>
и </h2>
. В итоге код в строке 31 должен выглядеть так:
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h2> <?php echo $this->escape($this->params->get('page_heading')); ?> </h2>
</div>
<?php endif;
Теперь порядок. Проверяем...
Проверка шаблона выдачи страницы Protostar с нашими правками для отображения заголовка страницы
Проверка шаблона выдачи страницы Protostar с нашими правками для отображения заголовка страницы показывает тот результат, которого мы и хотели добиться:
Заголовок категории отображается тегом <h2>
и у нас на странице снова только один заголовок <h1>
.
Заключение
Как можно уже понять, в этом месте кода можно задать не только уровень заголовка, но и прописать ему css-класс, присвоить другой тип заголовка, например <h3>
или вообще выводить этот заголовок div'ом или в теге <p>
... в зависимости от того, как нужно его вписать в дизайн и как хочется организовать SEO страницы материала.
Есть ещё одна печалька. При обновлении Joomla и/или шаблона наши правки будут слетать. Поэтому за их состоянием следует следить или переопределить вывод шаблона страницы материала. Лично мне не нравятся лишние переопределения, поэтому я пока использую для себя страницу, с которой сверяюсь после того, как накатываю обновления Joomla. Но в планах есть желание всё это автоматизировать. ;)
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)