К содержимому
Вывод в теме

Вывод в теме

Обновлено

Автоматическое подключение

Плагин работает через события Блога и Webasyst. Отдельного публичного хелпера, который нужно вызывать из Smarty, у него нет. Собственных шаблонов для переопределения также нет.

Тема должна вызывать стандартный метод Webasyst внутри <head>:

<head>
    {* Остальное содержимое заголовка темы *}
    {$wa->head()}
</head>

Это фрагмент для проверки существующей темы. Если вызов уже есть, добавлять второй не требуется.

Как формируется тег

Обработчик frontendAction подключён к событиям frontend_action_default, frontend_action_post и frontend_action_page. Он задаёт мету canonical, которую затем выводит {$wa->head()}.

Резервный обработчик waFrontendHead подключён к wa.frontend_head. Он возвращает HTML тега только тогда, когда getCanonical() не сообщает об уже заданном canonical и для страницы удалось вычислить адрес.

Если основной обработчик обнаруживает существующий заголовок ответа Link со строкой rel='canonical', он заменяет его адрес на вычисленный canonical. Самостоятельно создавать такой заголовок при его отсутствии плагин не пытается.

Если тега нет

Проверьте выбранный тип страницы и флажок «Самоссылающиеся канониклы». Затем убедитесь, что тема вызывает {$wa->head()} и страница отвечает успешно. Для записи также требуется, чтобы плагин нашёл опубликованную запись и получил её основной адрес.

При ошибке вычисления плагин записывает сообщение в wa-log/blog/plugins/ewblogcanonical.log и не задаёт собственный canonical.

Если тегов несколько

Плагин использует общую мету ответа, но не разбирает готовый HTML темы. Проверьте, нет ли в шаблоне отдельного вручную выведенного <link rel="canonical">, повторного {$wa->head()} или вывода canonical другим расширением. Ручной тег в теме плагин удалить не может.