Как добавить заголовок сайта на все страницы, кроме главной?


8

В Joomla 2.5 Global Configuration под SEO есть опция «Включить имя сайта в заголовки страниц» с опциями «После», «До» или «Нет». Однако, как вы включаете название сайта («После») на всех страницах, кроме главной страницы? (А может быть, и для других страниц?)

Это на Joomla 2.5, однако, я также хотел бы знать, отличается ли процесс в Joomla 3.

Основные функциональные возможности или ручные решения кода являются предпочтительными. Однако, если есть подходящие расширения, которые предоставляют эту функциональность, пожалуйста, не стесняйтесь предлагать их.


1
Я не знаю наверняка, но я подозреваю, что ответ заключается в том, что вы не можете без расширения (или мода на шаблон). Мне любопытно узнать ответ сам :)
Брайан Пит

Ответы:


7

Чтобы установить заголовок главной страницы иначе, чем заголовок других страниц, добавьте следующий код в файл шаблона index.php в конце заголовка.

$menu = $app->getMenu();
    if ($menu->getActive() == $menu->getDefault()) {
    $this->setTitle( 'Whatever You Want Title' );
    }

Этот код устанавливает заголовок главной страницы независимо от того, как Joomla устанавливает остальные страницы. Это работает на Joomla 2.5, и я верю, что это также будет работать в 3.x серии.


Спасибо, это был метод, который я в итоге использовал - работает хорошо.
MrWhite

4

RS SEO может сделать это из коробки. В конфигурации вы настраиваете, как вы хотите, чтобы заголовок сайта добавлялся, затем вы можете редактировать любую страницу, которую хотите, после того, как она была добавлена. Это особенно важно для страниц с длинными заголовками, которые будут слишком длинными, если вы добавите название сайта в заголовок.


3

Здесь четыре варианта: A) использовать родной язык Joomla до, после или без. Затем перейдите в пункт главного меню и добавьте заголовок браузера. Он будет по-прежнему использовать до, после или нет, но по крайней мере вы получите пользовательское имя из него. Так это будет выглядеть так:

Предоставление услуг в течение 100 лет - Название компании

Б) Добавьте этот код под тегом открытого тела:

 <?php 
 $app = JFactory::getApplication();
 $this->setTitle($this->getTitle().' | '.$app->getCfg('sitename'));
 ?>

Это дает вам возможность использовать разрывы труб вместо тире или другого персонажа по вашему выбору. Вы также можете вместо использования sitename добавить что-то еще и добавить его ко всем заголовкам браузера.

Предоставление услуг в течение 100 лет | название компании

C) Установите свой Joomla на нет. Вручную написать все названия пунктов меню браузера. Не ужасно для небольших сайтов. Действительно ужасно для больших сайтов.

D) Я не пробовал это, но я думаю, что это будет работать. В любом случае в теории. Добавьте идентификатор на свою домашнюю страницу.

Это идет выше doctype:

<?php
  $app = JFactory::getApplication();
  $menu = $app->getMenu()->getActive();
  $pageclass = '';

  if (is_object($menu))
    $pageclass = $menu->params->get('pageclass_sfx');
?>

И это заменяет тело

<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>">

Теперь добавьте класс в ваш пункт меню. Он будет отображаться как идентификатор тела. СЕЙЧАС, используйте код, предоставленный в опции D, и добавьте вокруг него функцию php, чтобы она не запускалась на теле идентификатора вашей домашней страницы (извините, я не знаю, как написать php, иначе я бы сделал это для вас), затем заполните заголовок браузера в главном меню. Все остальное добавит название вашего сайта, кроме домашней страницы.


Спасибо за все предложения. Если честно, я не уверен, как Dбудет работать? Я вижу, что это можно использовать для изменения заголовка на странице с помощью CSS, возможно, но мне нужно на самом деле записать TITLEэлемент. В конце концов, я использовал ваш гибрид Bи Dпредложения, чтобы сначала проверить, является ли текущее активное меню «по умолчанию» (т. Е. Мы на первой странице), а затем вызвать setTitle()вручную переопределить заголовок только для передней стр.
MrWhite

Я имею в виду использование идентификатора в качестве элемента в выражении php, которое говорит: «Если у этого тела есть этот идентификатор, не включайте этот код, который добавляет заголовок сайта». Но, эй, если мои болтовни дали тебе идею, беги с ней!
Фэй

3

Я создал модуль, который можно назначить любой странице и переопределить мета-заголовок и описание (на самом деле он предназначен для добавления пользовательского кода на сайт и дополнительного кода в заголовок страницы, но он также делает это).

http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-modules/17842

Установите глобальную конфигурацию так, как вы хотите, чтобы была большая часть сайта, а затем используйте модуль для таргетинга на определенные страницы.


1

Насколько я знаю, нет такой опции для отдельных страниц.

Я никогда не пробовал это на ядре joomla, но в прошлом я использовал плагин под названием « SEO-генератор », в котором есть опции для настройки заголовков страниц путем добавления имени сайта (аналогично основным параметрам joomla), с некоторыми дополнительными настройки для пользовательского заголовка страницы на первой странице.

Но если вы захотите сделать то же самое для большего количества страниц, этот плагин не сделает этого, если только вы не измените его код и не произведете проверку определенных элементов меню по идентификатору, для которого вы хотите применить дополнительное имя сайта.

Могут быть и другие расширения, которые могут предложить администраторам управление пунктами меню, для которых вы хотите иметь особые настройки в отношении заголовка страницы, но я не знаю ни одного из них.

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

Однако SEO, касающееся использования имени сайта на всех этих страницах, не всегда является лучшей идеей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.