Уникальная метаинформация в пагинации

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9.6

Задача

Необходимо, чтобы keywords, description и title отличались на каждой подстранички, в рамках пагинации.

Решение

Задачу можно реализовать следующим образом:

В индексном шаблоне задайте переменную 'p' и

<xsl:param name="p" select="'0'" />

В этом же шаблоне, внутри тега <head> вызовите шаблон, например так:

<xsl:template match="/">
		<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="en">
			<head>
			
				<xsl:apply-templates select="result" mode="seo-head" />
				
				<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
				<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
			</head>

и в отдельном файле (который нужно будет потом подключить) опишите примерно следующий шаблон:

<xsl:variable name="page-num" select="$p + 1" />

<xsl:template match="result" mode="seo-head">	
	<xsl:choose>
		<xsl:when test="$p &gt; 0">
			<title>
				<xsl:value-of select="@title" disable-output-escaping="yes" /> - Страница <xsl:value-of select="$page-num" />
			</title>
			<meta name="keywords" content="{meta/keywords}, - страница {$page-num}" />
			<meta name="description" content="{meta/description}, - cтраница {$page-num}" />
		</xsl:when>
		<xsl:otherwise>
			<title>
				<xsl:value-of select="@title" disable-output-escaping="yes" />
			</title>
			<meta name="keywords" content="{meta/keywords}" />
			<meta name="description" content="{meta/description}" />
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>

Таким образом к keywords, description и title будет добавляться "- Страница номер_подстранички" и они будут уникальными.