Мета-теги и заголовки MODx

В CMS MODx есть специальная система размещения мета-тегов страницы. Она присутствует на всех версиях системы до 1.0.0 включительно. О размещении META-тегов в MODx 1.0.2 вы можете прочитать здесь.

Рабоатет она довольно странно и, возможно, неудобно.

Как это работает по умолчанию

В системе есть возможность добавлять МЕТА-теги. Делается это на вкладке Ресуры(Elements) -> Управление МЕТА-тегами и ключевыми словами(Manage META-tags and Keywords).

Управление МЕТА-тегами и ключевыми словами в MODx

Здесь можно внести необходимые МЕТА-теги, а также ключевые слова.Для того чтоб МЕТА-теги отображались на конкретной странице их надо выбрать в настройках документа для соответствующей страницы:

Настройка МЕТА-тегов и ключевых слов в MODx

Добавлять в шаблон информацию о МЕТА-тегах не надо, она сформируется автоматически.

Тег title.

Для отображения этого тега в шаблонах modx обычно используются конструкции вроде

<title>[*pagetitle*]</title>

или

<title>[(site_name)] | [*pagetitle*]</title>

в этом случае заголовком страницы будет ее название или, как во втором случае, название сайта и название страницы. При добавлении META-тега title он будет отображаться таким образом :

<meta name=»title» content=»some content» />

Это не всегда удобно. Ниже приведен сниппет, который берет за заголовок страницы соответствующий внесенный МЕТА-тег, а если не находит его, то заголовок страницы:

<?php
global $mods;
global $id;
$output = »;
$result = $modx->db->query( ‘SELECT *
FROM modx_site_content_metatags
INNER JOIN modx_site_metatags ON modx_site_content_metatags.metatag_id = modx_site_metatags.id
WHERE modx_site_content_metatags.content_id =’.$modx->documentIdentifier );
while( $row = $modx->db->getRow( $result ) ) {
if ($row[‘tag’]==’title’){$output .= $row[‘tagvalue’]; } ;
}
if ($output==»){
$a = $modx->getPageInfo($modx->documentIdentifier);
$output .= $a[‘pagetitle’];
}
echo $output;
?>

Сохранить его можно под названием showtitle и вызывать в шаблоне [[showtitle]] в блоке head например так:

<title>[[showtitle]]</title>

или так

<title>[(site_name)] | [[showtitle]]</title>.

Тег keywords.

В системе есть два способа внесения ключевых слов:

1) Можно это сделать аналогично остальным тегам (например <a href=»#descr»>description</a>);

2) Можно внести список всех, встречающихся на сайте ключевых слов и выбирать для каждой страницы их список. В этом случае в коде HTML будет примерно следующая конструкциия:

<meta name=»keywords» content=»ключевое слово 1, ключевое слово 2″ />

Т. е. ключевые слова будут перечислены через запятую. Если одновременно указать ключевые слова обоими способами, то META-тегов будет два, что, наверное, нежелательно.

Теги descrition, robots и т. п.

Соответствующие теги просто вносятся в систему и выбираются для страницы. В коде HTML появляются конструкции:

<meta name=»имя тега» content=»контент тега» />

 

 

Рассмотрим все это на конкретном примере

На вкладке ресурсы — Управление META-тегами и Ключевыми словами внесем необходимые нам META-теги. Вносить надо все МЕТА-теги для всего сайта.

Как создать МЕТА-теги в MODx

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

Как внести ключевые слова в MODx

Если для сайта характерны уникальные для каждой страницы наборы ключевых слов(или изредка пересекающиеся) то для их добавления целесообразно использовать верхнюю форму добавления META-тегов. Нижнюю форму использовать в этом случае не надо.

Как внести ключевые слова в MODx

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

Как внести ключевые слова и META-теги в MODx

С еще одним способом организации размещения мета-информации на сайте, а также с размещением мета-тегов в последних версиях MODx можно прочитать здесь.

  • Действительно интересно, хотя не мешало бы чуть подетальней написать, а то есть несколько непонятных моментов 🙂

  • Степан, привел пример использования META-тегов в MODx. Теперь, я думаю, все прозрачно. Если что-то все же непонятно : всегда можно спросить — для этого и нужны комментарии))).

  • Компания «GMsite» (http://www.gmsite.ru/) сделала для нашей компании сайт http://www.ruszeminvest.ru/
    Статья очень нужная и актуальная, теперь благодаря статье понятно как делать и что куда вставлять! Спасибо!

  • Сохранили мне кучу времени! спс.

  • Андрей

    Хорошая статья получилась, спасибо!

    Вопрос, немного не в тему, может подскажете как избавиться от закрывающего слэша в метатегах, />
    У меня на сайте DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd» и этот слэш очень раздражает..

  • В файле /manager/includes/document.parser.class.inc.php в функции mergeDocumentMETATags надо изменить:

    Закрывающие теги пропадут.

  • Александр

    вроде делаю все то же самое, а в заголовке получаю

    Parse error: syntax error, unexpected T_STRING in /home/saitoff/public_html/lombard96.ru/manager/includes/document.parser.class.inc.php(770) : eval()’d code on line 6

    Я не программист, не могу понять, в чем проблема. Если сможете помочь, буду оч. благодарен.

    • Александр, попробуйте вот этот файл. Скорее всего вы не поставили точку с запятой в конце строки.

  • Александр

    Видимо этот файл разработчики уже меняли, т.к. Ваш не подходит — сайт перестает грузиться )
    Можете посмотреть сам сайт? Готов финансово компенсировать временные затраты.
    Если согласны, стукните мне в аську — 488252186, Александр

  • Александр

    Я не трогал этот файл. Ваш тоже не подходит — видимо в мой уже вносили какие-то изменения и в вашем чего-то уже не хватает.
    Можете посмотреть сам сайт? готов финансово компенсировать временные затраты.
    стукните мне в аську, если согласны — 488252186, Александр

  • Александр

    А, все, решил проблему другим путев — в вставил description вместо названия страницы и теперь пишу в нем текст для заголовка )

  • Да, можно решить проблему и так.

  • Олег

    А как создать новый тег : ‘yandex-verification’ ?

  • Олег

    Поправка как в modx придать новому тегу атрибут ‘yandex-verification’.

  • Вы можете добавить этот метатег в код шаблона.

  • Pingback: Мета-теги в modx 1.0.2 | Блог web-разработчика()

  • Может не совсем к месту, но мне нужен скрипт для подбора ключевых слов на PHP сайт http://aminompeople.ru/ буду при много благодарен.

  • Добрый день!
    «Добавлять в шаблон информацию о МЕТА-тегах не надо, она сформируется автоматически.» — а как эту автоматическую информацию упорядочить, чтобы она раньше Title не выскакивала?
    Очень нужно понять…
    программер, который делал сайт не в курсе как это сделать…
    версия системы 0.9.6.3
    Заранее спасибо…

    • Очень странно… А зачем это делать?
      Вообще надо в коде изменить последовательность вызова функций.

  • Есть ли плагин для автоматической простановки тегов?

  • Ищу плагин генерация авто мета и дескрипшн с текста статьи, готов оплатить

  • Как можно сделать следующую конструкцию: если тег тайтл не задан через чанк TV, то выводилось бы например [*description*] ?
    Потому как не всегда на всех страничках прописаны мета теги, что тайтл что дескрипшен, и на этот случай хотелось бы иметь автоматическое заполнение.

    • Только писать маленький сниппет. Стандартно-никак.