При использовании Telegram в качестве системы комментариев на сайте WordPress, может возникнуть ошибка, связанная с отсутствием канонического URL. Сообщение выглядит так:
«Discussion is not available at the moment. Please add a
<link rel="canonical" href="%page_url%">
tag in the page header with the canonical URL of the current page.»
Эта ошибка указывает на то, что для корректной работы Telegram-комментариев необходимо указать канонический URL текущей страницы в заголовке (<head>
) вашего сайта. В этой статье я подробно разберу, как решить эту проблему для WordPress-разработчиков, добавив канонический тег и правильно подключив скрипт комментариев через Telegram.
Шаг 1: Понимание проблемы
В большинстве случаев канонический URL добавляется автоматически WordPress или SEO-плагинами, такими как Yoast SEO. Однако, если по какой-то причине этот тег отсутствует, система комментариев Telegram не может идентифицировать страницу, что приводит к ошибке.
Что такое канонический URL?
Канонический URL — это URL-адрес, который служит основным для определённой страницы и сообщает поисковым системам, какой URL является предпочтительным для индексации. Это также важно для комментариев через Telegram, чтобы система могла правильно связать обсуждения с конкретной страницей.
Шаг 2: Добавление канонического URL
Первое, что нужно сделать — это добавить канонический URL на страницы постов и проектов. Для этого добавим код в файл functions.php
дочерней темы WordPress.
Код для добавления канонического тега:
function add_canonical_url() { if (is_singular('post') || is_singular('project')) { echo '<link rel="canonical" href="' . get_permalink() . '" />' . "\n"; } } add_action('wp_head', 'add_canonical_url');
Разбор кода:
is_singular('post')
иis_singular('project')
— это условие проверяет, находимся ли мы на странице записи (post) или проекта (project). Если да, код внутри условия выполняется.get_permalink()
— эта функция возвращает URL текущей страницы. Именно этот URL мы передаем как канонический.add_action('wp_head', 'add_canonical_url')
— это хук, который добавляет наш канонический тег в заголовок страницы (<head>
).
Этот код гарантирует, что на каждой странице записи и проекта будет добавлен правильный канонический URL, что необходимо для работы Telegram-комментариев.
Шаг 3: Подключение скрипта комментариев Telegram
Теперь, когда мы добавили канонический URL, нужно подключить сам скрипт Telegram для комментариев. Скрипт Telegram нужно добавлять только на тех страницах, где нам нужны комментарии (например, на страницах постов и проектов).
Код для подключения скрипта Telegram:
function add_telegram_script_before_comments() { if (is_singular('post') || is_singular('project')) { echo ' <script async src="https://telegram.org/js/telegram-widget.js?21" data-telegram-discussion="drslon_channel" data-comments-limit="30" data-color="5282FF" data-dark="0" ></script> '; } } add_action('comment_form_before', 'add_telegram_script_before_comments');
Разбор кода:
is_singular('post') || is_singular('project')
— как и в предыдущем коде, проверяем, что находимся на странице поста или проекта.<script>
— мы подключаем скрипт Telegram с помощью стандартного тега<script>
, указывая параметры:
data-telegram-discussion
— имя Telegram-канала для обсуждения (например,drslon_channel
).data-comments-limit="30"
— максимальное количество комментариев для отображения.data-color
— цвет виджета.data-dark="0"
— тёмная тема отключена (значение 1 включает её).
add_action('comment_form_before', 'add_telegram_script_before_comments')
— с помощью этого хука мы вставляем скрипт перед формой комментариев WordPress.
Этот код делает так, что скрипт Telegram будет загружаться только на страницах постов и проектов, где необходимы комментарии.
Шаг 4: Финальный код
Вот полный код, который добавляет канонический URL и подключает скрипт Telegram:
// Добавляем канонический URL в заголовок страницы function add_canonical_url() { if (is_singular('post') || is_singular('project')) { echo '<link rel="canonical" href="' . get_permalink() . '" />' . "\n"; } } add_action('wp_head', 'add_canonical_url'); // Подключаем скрипт Telegram для комментариев перед формой комментариев function add_telegram_script_before_comments() { if (is_singular('post') || is_singular('project')) { echo ' <script async src="https://telegram.org/js/telegram-widget.js?21" data-telegram-discussion="drslon_channel" data-comments-limit="30" data-color="5282FF" data-dark="0" ></script> '; } } add_action('comment_form_before', 'add_telegram_script_before_comments');
Заключение
В этой статье я показал, как решить проблему с Telegram-комментариями в WordPress, добавив канонический URL и подключив скрипт комментариев. Теперь ваш сайт готов к корректной работе с обсуждениями через Telegram!