Шаблоны мета-тегов (шаблоны SEO) в интернет-магазине
Шаблоны мета-тегов предназначены для гибкой и простой настройки SEO-тегов. Шаблоны задаются как целиком для магазина, так и для его конкретных групп.
Перейдите в раздел Контент → Интернет-магазины и отредактируйте сам магазин. На вкладке Шаблоны SEO доступны поля для внесения шаблонов.
В системе есть заранее сформированный список подстановок, которые можно добавить в шаблон:
При выборе значения из списка в поле будет добавлена подстановка. Например, создадим шаблон следующего вида:
Теперь находясь в группе с названием "Плиты" получим результат:
Лучшие Плиты в Москве! Техника для кухни → Плиты
Полный список предустановленных подстановок
Подстановка | Описание |
---|---|
{shop.name} | Добавляет название текущего интернет-магазина |
{group.name} | Добавляет название текущей группы |
{group.description} | Добавляет описание текущей группы |
{this.seoFilter ": " ", "} | Добавляет опции, заданные фильтру. Может принимать 2 параметра: первый — разделитель между названием и списком значений свойства, по умолчанию ': '; второй — разделитель между значениями, по умолчанию ', ' |
{this.filterProducer} |
Добавляет название производителя, по которому осуществляется фильтрация. |
{group.propertyValue ID} |
Добавляет значения свойств группы с идентификатором ID. Может принимать 3 параметра: Для вывода значений свойств с ID 17 с указанием названия свойства и собственным разделителем используйте вызов {group.propertyValue 17 '%s: %s' ' / '} |
{group.groupPathWithSeparator} | Добавляет путь к группе, в виде Видеокамеры → Цифровые. Сепаратор можно изменить передав в качестве аргумента. Например, {group.groupPathWithSeparator " / "}, также можно ограничить количество групп, удалив текущую группу, для этого передается второй аргумент {group.groupPathWithSeparator " / " 1} |
{this.pageNumber ", страница %d"} | Добавляет номер страницы, в виде ", страница 2". |
{item.name} | Добавляет название текущего товара |
{item.description} | Добавляет краткое описание товара |
{item.text} | Добавляет текст товара |
{item.priceWithCurrency} | Добавляет цену товара (с учетом скидки) и валюту товара. Необязательным параметром задается шаблон вывода, по умолчанию '%s %s' |
{item.currencyName} | Добавляет валюту товара (не путать с валютой магазина, может использоваться с {item.price}) |
{item.propertyValue ID} |
Добавляет значения свойств товара с идентификатором ID. Может принимать 3 параметра: Для вывода значений свойств с ID 17 с указанием названия свойства и собственным разделителем используйте вызов {item.propertyValue 17 '%s: %s' ' / '} |
Собственные подстановки
Помимо предустановленных подстановок вы можете использовать любое свойство модели магазина, групп, товара или метод модели, например,
Подстановка | Описание |
---|---|
{shop.description} | Добавляет описание текущего интернет-магазина |
{group.id} | Добавляет идентификатор текущей группы |
{item.marking} | Добавляет артикул текущего товара |
{item.producerName} | Добавляет название производителя товара товара |
Префиксы
В качестве префикса может быть использован toLower для приведения к нижнему регистру {toLower item.name}, toUpper для приведения к верхнему {toUpper item.name}, а также любая php-функция, например, {mb_strtolower item.currencyName}
Обработка H1
Если заданы шаблоны для H1, то сформированные значения будут в тегах /shop/seo_item_h1 и /shop/seo_group_h1. Пример проверки для товара в XSL-шаблоне:
<!-- Название товара или SEO-шаблон для H1 товара --> <xsl:choose> <xsl:when test="/shop/seo_item_h1/node()"> <h1><xsl:value-of select="/shop/seo_item_h1"/></h1> </xsl:when> <xsl:otherwise> <h1 hostcms:id="{@id}" hostcms:field="name" hostcms:entity="shop_item"><xsl:value-of select="name"/></h1> </xsl:otherwise> </xsl:choose>
Корректировка типовой динамической страницы
Для использования SEO-шаблонов мета-тегов необходимо отредактировать код типовой динамической страницы магазина. Закомментировать строки, начинающиеся с $aTitle = array(); и по Core_Page::instance()->object = $Shop_Controller_Show;
Пример:
/*
$aTitle = array();
$aDescription = array();
$aKeywords = array();
...
if (count($aTitle) > 1)
{
$aTitle = array_reverse($aTitle);
$aDescription = array_reverse($aDescription);
$aKeywords = array_reverse($aKeywords);
Core_Page::instance()->title(implode($pageSeparator, $aTitle));
Core_Page::instance()->description(implode($pageSeparator, $aDescription));
Core_Page::instance()->keywords(implode($pageSeparator, $aKeywords));
}*/
Core_Page::instance()->object = $Shop_Controller_Show;
Функционал доступен с версии 6.7.8
Комментарии
-
Вывод текущей даты в seo шаблоны
Можно ли сделать, чтобы в сео шаблоны выводилась текущая дата в формате день/месяц/год, если можно то как?
Без темы
Используйте {date(d/m/Y)}, только необходимо будет обновить Core_Meta, запросить файл можно в поддержке.
-
Доп. свойство "флажок"
Если выбрано доп. свойство флажок, то при подстановке {this.seoFilter ": " ", "} в результате выводится название свойства и его значение - "1". Возможно ли избавиться от значения для этого конкретного типа доп. свойства?
-
Удаление лишних пробелов
При фильтре по производителю нужно добавить наименование производителя в заголовок. Но если фильтр не используется, остается лишний пробел, как это можно исправить?
Без темы
В версии 6.9.8β лишние пробелы удаляются, если у вас уже установлена версия, нужно повторно установить обновление, порядок установки уточните в поддержке.
-
Без темы
А шаблон поддерживает конструкции синонимов? Например можно ли написать вместо "багаж" такую конструкцию "[вещи | кладь | поклажа | клажа | ноша | груз | фрахт]" для большей уникальности.
Без темы
Синонимы в шаблоне не используются, функции шаблона описаны на этой странице.
-
Без темы
Как написать проверку, если Шаблон seo не пуст, то title брать от туда. мне не надо удалять c SEO Заголовок (title)! так как в тдс уже прописана проверка
if ($Shop_Controller_Show->item)
{
$oShop_Item = Core_Entity::factory('Shop_Item', $Shop_Controller_Show->item);
Core_Page::instance()->title($oShop_Item->name. ': купить, цены, характеристики – ььььььььь');Без темы
Обработка SEO-шаблонов производится внутри метода parseUrl() класса Shop_Controller_Show, в трех строчках применение SEO-шаблона за пределами контроллера в коде ТДС не получится. Если очень хочется, то посмотрите как это делается через $oCore_Meta и дерзайте в ТДС.
-
Без темы
В системе в заранее сформированном списке подстановок для шаблонов есть подстановка "Производитель" с подставляемой переменной {this.filterProducer}.
Какое значение она должна добавлять в шаблон?Без темы
{this.filterProducer} добавляет название производителя, по которому осуществляется фильтрация
Без темы
О какой фильтрации идет речь ? Подскажите как его применять для seo-шаблонов, а то не очень понятно.
Без темы
Вы комментарии к статье с поддержкой путаете. Направьте интересующие вас вопросы на support@hostcms.ru.
-
Получить шаблон в коде.
Я поправил ТДС, как написано и шаблоны применились. Подскажите пожалуйста, как получить текст шаблона в коде? Чтобы, например, я шаблон мог сравнить с значением переменной и в случае совпадения передать в тайтл другое значение. Спасибо
Без темы
Шаблоны мета-тегов применяются в методе parseUrl() контроллера показа, получить установленные значения вы можете через Core_Page, примеры в API
-
Как удалить старые мета-теги
У товаров нужно удалить старые мета-теги, которые уже были прописаны без шаблонов.
Ведь пока их не удалишь, шаблоны мета-тегов не будут работать у этих товаров.
Каким SQL запросом очистить мета теги у товаров определенной группы ?
И желательно чтобы можно было чистить не обязательно сразу все поля ( title, description, keywords) , а какие-то определенные.
Без темы
> Каким SQL запросом очистить мета теги у товаров определенной группы ?
UPDATE к shop_items. С ограничением по shop_group_id. Посмотрите структуру таблицы и увидите названия полей для title, description и keywords в таблице.
-
Без темы
А можно добавить подстановку из Дополнительного свойства товара? К примеру, мне нужно добавить к названию товара цвет или размер из допсвойства. Менять вкладку seo вручную у нескольких тысяч товаров крайне затратно по времени, а шаблон подстановки решил бы эту задачу быстро.
-
Без темы
в новых версиях если в Шаблонах пусто и на вкалдке SEO пусто то по умолчанию выдает навзание Группы\Элемента
Как сделать чтоб выдавало пустоту если везде пустота?
Без темы
Только переопределять контроллер и в нем parseUrl(), т.к. не может быть пустого заголовка, если нет шаблона и нет SEO-заголовка, то в заголовок идет название товары (группы).
-
Без темы
Каким префиксом можно привести к нижнему символу не всю строку как делает {toLower item.name}, а только первый символ строки?
Без темы
Добавили в 6.7.9. Можно так:
{uppercaseFirst item.name}
или так:
{Core_Str::ucfirst item.name}
-
Без темы
ТДС называется Интернет-магазинСайт ?
В коде страницы близко нет $aTitle = array(); в настройках страницы есть Core_Page::instance()->object = $Shop_Controller_Show; но не срабатывает
Без темы
Значит в вашей ТДС этого нет или она переписана. Обратитесь в поддержку, смысл здесь об этом писать?!