Как настроить Joomla отображать заголовки категорий тегом H2 на странице материала

Разобравшись с тем, как включить вывод названия только определённой категории в виде заголовка страницы материала в Joomla 3, сталкиваемся с тем, что в макетах обычно по умолчанию вывод названий категорий (который берётся из названия пункта меню) настроен как заголовок <h1>, а заголовки материалов выводятся заголовками <h2>. После того, как настроим вывод заголовков материалов тегом <h1> (как это сделать подробно описано в → этой статье), сталкиваемся с тем, что у нас на странице появляется два заголовка <h1>. И это неправильно. В этой статье рассмотрим, как и что поменять в коде выдачи шаблона страницы, чтобы заголовки категорий отображались тегом <h2>.



Настройки шаблона Protostar по умолчанию для отображения заголовка страницы

Для того, чтобы убедиться, каким тегом выводятся заголовки страницы (в нашем случае — это заголовок пункта меню, имеющий то же самое название, что и название категории статей), посмотрим в коде страницы:

Настройки шаблона 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 с нашими правками для отображения заголовка страницы показывает тот результат, которого мы и хотели добиться:

Проверка шаблона выдачи страницы Protostar с нашими правками для отображения заголовка страницы

Заголовок категории отображается тегом <h2> и у нас на странице снова только один заголовок <h1>.

Заключение

Как можно уже понять, в этом месте кода можно задать не только уровень заголовка, но и прописать ему css-класс, присвоить другой тип заголовка, например <h3> или вообще выводить этот заголовок div'ом или в теге <p>... в зависимости от того, как нужно его вписать в дизайн и как хочется организовать SEO страницы материала.

Есть ещё одна печалька. При обновлении Joomla и/или шаблона наши правки будут слетать. Поэтому за их состоянием следует следить или переопределить вывод шаблона страницы материала. Лично мне не нравятся лишние переопределения, поэтому я пока использую для себя страницу, с которой сверяюсь после того, как накатываю обновления Joomla. Но в планах есть желание всё это автоматизировать. ;)

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню