Как в MODX добавить тег canonical
Если вы тут, значит вы уже знаете что такое <link rel="canonical" href="" /> если же нет, то вот немного теории.
Поэтому сразу приступим к настройке <link rel="canonical" href="" /> в MODX.
Первым делом создадим «Дополнительное поле TV»
Настройки
- Имя*: canonical
- Подпись: Добавляет тэг canonical
- Описание: Добавляет тэг <link rel="canonical" href="" />
- Тип ввода: Текст
- Необязательно: Да
- Тип вывода: По умолчанию
- На вкладке «Доступно для шаблонов» указать свой шаблон (Поставить галочку).
В итоге мы получили дополнительное поле TV в теле ресурса. Благодаря этому мы можем указать адрес каноничного материала.
Если мы его оставим пустым, то MODX должен настраивать <link rel="canonical" href="" /> href на текущий URL страницы.
Итак продолжим настройки.
Откроем чанк в котором у нас описывается тег <HEAD></HEAD>
У меня всё разделено на дополнительные чанки, т.е. для каждого типа тегов в <HEAD> создан чанк, чанк для CSS, для Скриптов, для META и т.д.
Добавляем следующий код. (Внимание! у вас должен быть установлен плагин pdoTools)
<!-- canonical -->
<link rel="canonical" href="[ [pdoField?
&field=`canonical`
&prepareTVs=`canonical`
&top=`0`
&output=`[ [++site_url] ][ [*uri] ]`
] ]" />
В итоге
- если для ресурса в TV «canonical» указан URL, то берём данные для rel="canonical" href из него.
- если для ресурса TV «canonical» — пусто, то указываем для rel="canonical" href текущей страницы.
Удачи.
Вместо адреса пишет квакозябры из прилагаемого кода:
адрес сайта/[%20[pdoField?&field=`canonical`&prepareTVs=`canonical`&top=`0`&output=`[%20[++site_url]%20][%20[*uri]%20]`]%20]
Тег прописывается по синтаксису правильно, только кодировка ошибочна? т.е. не может правильно кириллицу перевести?
Плагин translit стоит?
friendly_urls и friendly_urls_strict включены?
Транслит стоит
friendly_urls и friendly_urls_strict тоже вкл.
По существу нужны скрины чанков и скрины самой проблемы.
Всю информацию можно отправить по почте