Как формируются мета-теги в Joomla?

Мета-теги в Joomla формируются в файле \libraries\joomla\document\html\renderer\head.php.
В основном блоке формируются следующие мета-теги:
  • <meta http-equiv=»content-type» content=»text/html; charset=utf-8" />
  • <meta name=»robots» content=»index, follow» />
  • <meta name=»keywords» content=»keywords» />
  • <meta name=»title» content=»title» />
  • <meta name=»author» content=»user» />

Блок генерации мета-тегов

// ...
// Generate META tags (needs to happen as early as possible in the head)
	foreach ($document->_metaTags as $type => $tag)
	{
		foreach ($tag as $name => $content)
		{
			if ($type == 'http-equiv') {
				$strHtml .= $tab.'<meta http-equiv="'.$name.'" content="'.$content.'"'.$tagEnd.$lnEnd;
			} elseif ($type == 'standard') {
				$strHtml .= $tab.'<meta name="'.$name.'" content="'.str_replace('"',"'",$content).'"'.$tagEnd.$lnEnd;
			}
		}
	}
// ...

Там же далее происходит формирование строк следующих тегов:

  • <meta name=»description» content=»description» />
  • <meta name=»generator» content=»Joomla! 1.5 — Open Source Content Management» />
  • <title>title</title>
$strHtml .= $tab.'<meta name="description" content="'.$document->getDescription().'" />'.$lnEnd;
$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;
$strHtml .= $tab.'<title>'.htmlspecialchars($document->getTitle()).'</title>'.$lnEnd;

Глянув на код, можно совершить с ним небольшую манипуляцию:

// ...
} elseif ($type == 'standard') {
	if ($name == 'title') {
		$strHtml .= $tab.'<meta name="'.$name.'" content="'.str_replace('"',"'",$document->_metaTags[standard][keywords]).'"'.$tagEnd.$lnEnd;
	}
	else
		$strHtml .= $tab.'<meta name="'.$name.'" content="'.str_replace('"',"'",$content).'"'.$tagEnd.$lnEnd;
}
// ...

Теперь в содержимое мета-тега title записывается содержимое поля keywords материала (страницы).

Комментариев: 5

  • 27.08.2010 Влад:

    Интересная статья.

    А можно так сделать чтобы в тайтл выводился заголовок страницы Н1?

  • 27.08.2010 Кирилл:

    По умолчанию в мета-тег title записывается содержание поля «Название» статьи. В тег title записывает то же самое. Может я неправильно понял вопрос?

  • 29.11.2010 Иван:

    как вывести содержимое кейворда на страницу сайта?

  • 30.11.2010 Кирилл:

    Первый вариант пришедший в голову, записать кейворды в $_GLOBALS['keywords'] и вывести в шаблоне статьи или сайта.

  • 19.04.2011 Алексей:

    Привет. Такой вопрос. Есть материалы с мета тегами, а есть без них, в этом случае подставляются стандартные. Так вот как сделать, чтобы если стандартные, то заменять кейвордс и дискрипшен на значение тайтл хотя бы?


Добавление комментария:

 css.php