При создании материала Joomla, Title страницы будет таким же, как и название. В этом кейсе я расскажу, как можно легко исправить это недоразумение.
Как сделать разные Title и H1 для статей в Joomla

В Joomla есть особенность. При создании материала, Title страницы будет таким же, как и его (материала) название. Отдельно задать Title страницы в настройках материала нельзя. В этом кейсе я расскажу, как можно легко исправить это недоразумение.

Если вы хорошо разбираетесь в Joomla, то, вероятно, знаете, что уникальные и отличающиеся Title и H1 можно задать для статьи на сайте, если привязать эту статью к пункту меню. Этот метод хорошо использовать, когда у вас всего несколько статей. Но что делать, если статей десятки или сотни? Создавать для каждой отдельный пункт меню неудобно.

Благодаря тому, что в Joomla 3.7 появились настраиваемые поля, мы можем создать дополнительное поле для материалов, и настроить его так, чтобы в нем можно было задать Title для страницы материала.

Порядок действий следующий:

  1. Создаем настраиваемое поле для Title в материалах Joomla
  2. Переопределяем макет материала Joomla в используемый шаблон
  3. Вносим изменения в макет

Теперь про каждый пункт подробнее.

1. Создаем настраиваемое поле для Title в материалах Joomla

Переходим в «Материалы –> Поля» и нажимаем кнопку «Создать»:

Перед вами откроется форма создания нового дополнительного поля. Заполняем ее следующим образом:

Создаем настраиваемое поле

На вкладке «Основные» задаем:

  • Тип: Текст
  • Категория: Все
  • Имя: custom-title
  • Название: На ваш выбор
  • Обязательно: Нет
  • Фильтр: Текст
  • Максимальная длина: Здесь можно ничего не вводить, либо ввести значение, длиннее которого Title будет задать нельзя (удобно для SEO, т.к. максимальная длина Title в поисковых системах ограничена)

На вкладке «Параметры» задаем:

  • Показать в: Оба
  • Автоматическое отображение: Не показывать автоматически

После этого сохраняем поле, и видим его в списке:

Созданное поле

Если всё сделано правильно, то при создании новой статьи или при изменении существующей, вы увидите вкладку «Поля» на которой будет наше созданное поле с возможностью указания пользовательского заголовка Title.

Поле для установки пользовательского Title

Если после создания дополнительного поля вы не видите его в форме редактирования материала, убедитесь, что:

1) У вас активирована опция: «Общие настройки –> Материалы –> Вкладка «Интеграция» –> Включить настраиваемые поля»

Активация настраиваемых полей в Joomla

2) Плагины дополнительных полей активированы в менеджере плагинов.

3) Вы используете Joomla 3.7 или выше.

2. Переопределяем макет материала Joomla в используемый шаблон

Теперь, когда у нас есть возможность ввода Title в форме редактирования материала, нужно чтобы Title был виден на сайте. Для этого нам нужно внести некоторые исправления в макет материала Joomla. Хаков не будет, т.к. этот макет переопределяется в шаблон Joomla.

Для переопределения макета материала, копируем файл:

/components/com_content/views/article/tmpl/default.php

в папку:

/templates/ВАШ_ШАБЛОН/html/com_content/article/

и вносим все дальнейшие изменения уже там.

 3. Вносим изменения в макет

В скопированном файле нам нужно внести следующие изменения:

Найдите строчку (~24):

JHtml::_('behavior.caption');

и вставьте после нее:

//Получаем данные настраиваемых полей в удобном виде----------------------------
foreach($this->item->jcfields as $jcfield) {
    $this->item->jcFields[$jcfield->name] = $jcfield;
}
//------------------------------------------------------------------------------
// Если задан пользовательский Title, устанавливаем его для страницы
if ($this->item->jcFields['custom-title']->rawvalue) {
    $document = JFactory::getDocument();
    $document->setTitle($this->item->jcFields['custom-title']->rawvalue);
}
//------------------------------------------------------------------------------

На этом всё. Теперь, если всё сделано правильно, когда вы будете вводить в созданное дополнительное поле материала текст, он автоматически будет становиться тегом Title для страницы этого материала:

Разные заголовок и Title страницы

P.S.: Учитывайте одну важную особенность. Используя этот прием, вы не сможете больше переопределить Title в настройках пункта меню, если привяжете к нему статью. Дело в том, что код, который написан выше, имеет наивысший приоритет для установки Title.

P.P.S.: По умолчанию заголовки статей показываются в Joomla в теге H2. Если вы хотите изменить их на H1, смотрите кейс: Как сделать заголовки материалов Joomla в теге H1

Засим благодарю за внимание и желаю успехов в продвижении ваших сайтов на Joomla.

Об авторе
Об авторе
Wedal (Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.

Понравилась статья? Сохраните себе на стену:

Ваша оценка материала очень важна для нас. Просим вас оценить статью или оставить отзыв в комментариях.

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

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Вверх