Автоматические meta-теги title и description
Популярные запросы: тема Omnis, плагин Pagelist, Cotonti 0.9.24.2, ЧПУ, Font Face
- 533 просмотра
- 22 января, 2023
- Обновлено: 16 октября, 2023
- admin
- Время чтения: 2 минуты
- 1 (Подробно)
Итак, вы запускаете интернет-магазин и начинаете наполнять его товарами. Делать это можно разными способами, однако сразу же возникает вопрос создания уникальных мета-тегов title и meta description. Когда количество товаров начнет переваливать за сотню, вопрос начинает превращаться в серьезную проблему. Ни один СЕО-аудит не проходит без ошибок, а оптимизатор и контентщик начинают предлагать варианты один хуже другого.
В движке Cotonti можно легко автоматизировать данную задачу. Поясним ее на примере интернет-магазина. Опять же, ради примера, будем считать, что в структуре экстраполей у нас существует поле page_price, в котором хранится цена товара.
Прежде всего создадим плагин, или добавим новую часть к уже существующему. Мы будем использовать хук header.main:
<?php /* ==================== [BEGIN_COT_EXT] Hooks=header.main [END_COT_EXT] ==================== */ defined('COT_CODE') or die('Wrong URL');
Для начала все же проверим экстраполе с ценой на ненулевое значение и подставим к нему значение валюты. В противном случае используем строковое значение "недорого":
$howmuch = ($pag['page_price'] > 0) ? 'за '.$pag['page_price'].' BYN') : 'недорого';
Следующим шагом формируем meta title. Исходим из того, что название товара находится в стандартном поле page_title:
$out['fulltitle'] = 'Купить '.$pag['page_title'].' в Минске '.$howmuch;
Чтобы все было по-джедайски, определим языковые переменные:
$L['what'] = 'Купить'; $L['where'] = 'в Минске';
Результирующий код:
$out['fulltitle'] = $what.' '.$pag['page_title'].' '.$where.' '.$howmuch;
Поскольку подобным образом надо поступать только с определенным набором страниц, ограничим наш генератор. Например, так:
if ($c == 'computers') $out['fulltitle'] = $what.' '.$pag['page_title'].' '.$where.' '.$howmuch;
Meta description генерим аналогичным способом, но уже в компоненте плагина с хуком page.main:
<?php /* ==================== [BEGIN_COT_EXT] Hooks=page.main [END_COT_EXT] ==================== */
Генерим языковые переменные для тега meta description:
$L['weoffer'] = 'Предлагаем нашим клиентам купить'; $L['delivery'] = 'с доставкой и подключением под ключ';
Результирующий код:
$out['desc'] = $weoffer.' '.$pag['page_title'].' '.$howmuch.' '.$where.' '.$delivery;
Выводы
Несложным плагином из двух частей мы смогли автоматизировать рутинную задачу по формированию мета-данных для типовых и малоконтентных страниц сайта. В нашем случае, товаров интернет-магазина. Чередуя текстовые вставки и значения экстраполей, мы получили уникальные мета-теги title и description для каждой товарной позиции.
Все, что от вас потребуется в дальнейшем, это отслеживать длину полученных значений так, чтобы она не превышала максимальные 65 и 155 символов для title и description соответственно.
Meta Title всегда формируется через переменную
$out['fulltitle']
с хуком header.main. В условии необходимо проверять$env['location']
(pages или list) и (при необходимости)$c
и др.За Meta Description отвечает
$out['desc']
, и здесь хуки уже будут разные: page.main или ниже для страниц и page.list.main или ниже для разделов.Применил у себя, тоже работает. Но заметил, что изменения Title и Description происходит в локации Cot::$env['location'] == 'pages'
Подскажите, пожалуйста, как изменить Title и Description в локации list?
Новый комментарий