Заголовки H1-H6 в Joomla.

Ещё один пост, чтобы было под рукой. Заголовки нужны, это знают все. Никто не знает насколько сильно их наличие влияет на позиции, но с точки зрения логики документа, заголовки h1,h2,h3,h4,h5,h6 нужны для того, чтобы поисковые машины могли отличить более важные данные в структуре страницы от менее важных.

А также:

  • желательно, чтобы на каждой странице был единственный и уникальный заголовок h1
  • много спорят по поводу конструкций “гиперссылка в заголовке” и “заголовок в анкоре ссылки”

Не вдаваясь в размышления “хорошо-плохо”, мои манипуляции в Joomla (сначала рекомендую изучить существующую структуру вашего шаблона, т.к. могут быть пересечения заголовков шаблона и самой жумлы):

1. Открываем components/content.html.php и там ищем вывод функции title:

function Title( &$row, &$params, &$access ) {
		if ( $params->get( 'item_title' ) ) {
			if ( $params->get( 'link_titles' ) && $row->link_on != '' ) {
				?>
				<td  width="100%">
					<h2 class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>"><a href="<?php echo $row->link_on;?>" class="contentpagetitle<?php echo $params->get( 'pageclass_sfx' ); ?>">
						<?php echo $row->title;?></a></h2>
					<?php HTML_content::EditIcon( $row, $params, $access ); ?>
				</td>
				<?php
			} else {
				?>
				<td  width="100%">
					<h1 class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>"><?php echo $row->title;?></h1>
					<?php HTML_content::EditIcon( $row, $params, $access ); ?>
				</td>
				<?php
			}
		} else {
			?>
			<td class="contentheading <?php echo $params->get( 'pageclass_sfx' ); ?>" width="100%">
				<?php HTML_content::EditIcon( $row, $params, $access ); ?>
			</td>
			<?php
		}
	}

и заменяем на

function Title( &$row, &$params, &$access ) {
		if ( $params->get( 'item_title' ) ) {
			if ( $params->get( 'link_titles' ) && $row->link_on != '' ) {
				?>
				<td  width="100%">
					<h2 class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>"><a href="<?php echo $row->link_on;?>" class="contentpagetitle<?php echo $params->get( 'pageclass_sfx' ); ?>">
						<?php echo $row->title;?></a></h2>
					<?php HTML_content::EditIcon( $row, $params, $access ); ?>
				</td>
				<?php
			} else {
				?>
				<td  width="100%">
					<h1 class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>"><?php echo $row->title;?></h1>
					<?php HTML_content::EditIcon( $row, $params, $access ); ?>
				</td>
				<?php
			}
		} else {
			?>
			<td class="contentheading <?php echo $params->get( 'pageclass_sfx' ); ?>" width="100%">
				<?php HTML_content::EditIcon( $row, $params, $access ); ?>
			</td>
			<?php
		}
	}

Получаем:
заголовок H1 при просмотре статьи;
заголовок H2 при просмотре содержимого в режимах “блог категории”, “блог раздела”. ВНИМАНИЕ! Если в режимах “блог категории”, “блог раздела”, названия материалов выводятся как гиперссылки, то эти ссылки будут внутри тега H2. Как воспринимается такая конструкция поисковиками, мне точно не известно. Может, и никак вовсе.

2. В этом же файле ищем:

<div class="componentheading<?php echo $params->get( 'pageclass_sfx' ); ?>">
			<?php echo htmlspecialchars( $title->name, ENT_QUOTES ); ?>
			</div>

И заменяем на:

<h1 class="componentheading<?php echo $params->get( 'pageclass_sfx' ); ?>">
			<?php echo htmlspecialchars( $title->name, ENT_QUOTES ); ?>
			</h1>

Получаем заголовки H1 категорий и разделов при просмотре в виде “таблица категории”, “таблица раздела”.

3. В components/content.php
строку

echo '<div class="componentheading'. $params->get( 'pageclass_sfx' ) .'">'. $header .'</div>';

модифицируем так:

echo '<h1 class="componentheading'. $params->get( 'pageclass_sfx' ) .'">'. $header .'</h1>';

И получаем заголовки разделов и категорий для “блог раздела”, “блог категории”.

Вот так. Всё работает на Joomla 1.0.15RE.

Заголовки H1-H6 в Joomla.
Оцените статью

17 комментариев

Mike 22.03.2011 Reply

Вопрос мучает один: как изменить жирность h4? Так, чтобы он не был жирным вообще? Очень нужно…

[Ответить]

admin

@Mike, это вам нужно лезть в css файл используемой темы

[Ответить]

mobikcc 11.05.2011 Reply

Будет ли, это работать Joomla 1.5

[Ответить]

admin

@mobikcc, не знаю если, честно

[Ответить]

Игорь 22.06.2011 Reply

Чайник уточняет – у меня title копирует название категории (h1). Есть еще по одному h1 и title на каждой странице от логотипа сайта. Название статьи выводится автоматически в тэг h2.
У меня два вопроса:
1. То что Вы предложили, поможет решить проблему одинаковых текстов в title страницы и h1 – названии категории?
2. Не подскажите что сделать с логотипом, чтобы не было повторных title и h1?
Спасибо!

[Ответить]

невероятный халк 26.08.2011 Reply

Отлично, все работает! Спасибо.

[Ответить]

RoooM 01.04.2012 Reply

Конечно в Joomla 1.5 все иначе!
Там даже нет этих файлов по указанным путям.
Блог категории например лежит
/components/com_content/views/section/tmpl/blog.php

ищите строки и добавляйте H1 как тут:
<div class="componentheadingparams->get(‘pageclass_sfx’);?>”>
escape($this->params->get(‘page_title’)); ?>

[Ответить]

RoooM 01.04.2012 Reply

<div class="componentheadingparams->get(‘pageclass_sfx’);?>”>
escape($this->params->get(‘page_title’)); ?>

[Ответить]

RoooM 01.04.2012 Reply
&lt;div class=&quot;componentheadingparams-&gt;get('pageclass_sfx');?&gt;"&gt;
	escape($this-&gt;params-&gt;get('page_title')); ?&gt;

[Ответить]

RoooM 01.04.2012 Reply

<div class="componentheadingparams->get(‘pageclass_sfx’);?>”>
escape($this->params->get(‘page_title’)); ?>

[Ответить]

RoooM 01.04.2012 Reply

Не втыкается код и всё!
Смотрите тут

[Ответить]

RoooM 01.04.2012 Reply

И ссылки рубит, зачем тогда в комент эту возможность давать?
Автор, сделай что нибудь!
Спасибо

[Ответить]

admin2

@RoooM, вряд ли могу помочь, у меня всё работает ссылка
и код:

document.location="http://ya.ru;

[Ответить]

RoooM 10.04.2012 Reply

Попробую вписать из ноута и Сафари
Находите код:

&lt;div class=&quot;componentheadingparams-&gt;get('pageclass_sfx');?&gt;"&gt;
escape($this-&gt;params-&gt;get('page_title')); ?&gt;

Добавляете H1 так:

&lt;div class=&quot;componentheadingparams-&gt;get('pageclass_sfx');?&gt;"&gt;
 
escape($this-&gt;params-&gt;get('page_title')); ?&gt;

[Ответить]

RoooM 10.04.2012 Reply

Перепакостил весь пост – а кода так и не видно!

[Ответить]

RoooM 10.04.2012 Reply

Вообщем кому припечет – стучите в скайп: rooomdsgn

[Ответить]

admin

@RoooM, чтобы вставить код, в форме комментирования нажимаем кнопку code первый раз, пишем код, нажимаем ещё раз. И всё отлично вставляется

<a class="comment-edit-link" href="http://cmsuser.ru/wp-admin/comment.php?action=editcomment&amp;c=5363" title="Редактировать комментарий" rel="nofollow">Править</a>

[Ответить]

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