Если вы, как и я, используете WP Telegram для автопубликации новых постов в канал, вы наверняка сталкивались с одной неприятной проблемой: Telegram-виджет комментариев отказывается работать.
Вот как выглядел мой шаблон раньше:
📅 <i>{post_date}</i> | ✍️ <i>{post_author}</i> 📌 <b>{post_title}</b> 📌 {post_excerpt} {tags} Подробнее 👉 {full_url}
Выглядит отлично, но… виджет Telegram-комментариев писал “Discussion is not available at the moment”. Почему?
🚨 Проблема: ссылка не “чистая”
Telegram требует, чтобы ссылка на статью (например, https://krivoshein.site/название-записи
) была на отдельной строке и без лишнего обрамления.
Но даже это не всегда помогает, если в {post_excerpt} содержатся другие ссылки, например, на внешний ресурс или на сам сайт. Telegram тогда не “видит” эту запись как обсуждаемую.
🧠 Решение: переменная clean_excerpt
Чтобы избежать попадания ссылок в Telegram-публикации, я создал кастомную переменную clean_excerpt
, которая очищает анонс от ссылок и форматирования.
Добавляем в functions.php
дочерней темы:
add_filter('wptelegram_post_template_vars', function($vars, $post) { $excerpt = get_the_excerpt($post); $excerpt = wp_strip_all_tags($excerpt); // убираем HTML $excerpt = preg_replace('/https?:\/\/[^\s]+/', '', $excerpt); // убираем ссылки $excerpt = wp_trim_words($excerpt, 40); // обрезаем до 40 слов $vars['clean_excerpt'] = trim($excerpt); return $vars; }, 10, 2);
После этого в шаблоне можно использовать:
{clean_excerpt}
🔁 Но если и это не работает…
Да, у меня тоже такое было. {clean_excerpt}
просто не подставлялся — Telegram получал это как текст {clean_excerpt}
.
Тогда я пошёл другим путём — заменил переменную по умолчанию post_excerpt
через фильтр:
add_filter('wptelegram_post_excerpt', function($excerpt, $post) { $excerpt = wp_strip_all_tags($excerpt); $excerpt = preg_replace('/https?:\/\/[^\s]+/', '', $excerpt); return wp_trim_words($excerpt, 40); }, 10, 2);
Теперь даже если в шаблоне используется {post_excerpt}
— ссылок не будет.
✅ Итоговый шаблон, который работает
📅 <i>{post_date}</i> | ✍️ <i>{post_author}</i> 📌 <b>{post_title}</b> 📌 {post_excerpt} {tags} 🌐 Читай в блоге: {full_url}
💡 Главное — убедитесь, что ссылка {full_url}
на отдельной строке, и в тексте до неё нет других ссылок (особенно в excerpt
).
📌 И ещё кое-что…
Если вы, как и я, вручную удаляли старые посты и создавали новые (например, переименовали запись или хотели пересоздать тему обсуждения), то учтите:
ID поста в Telegram-виджете уже не совпадает с новым.
Поэтому Telegram не “видит”, что запись опубликована. Это можно решить, заново отправив запись в канал — либо вручную, либо через WP Telegram → Send to Telegram.
💬 Вывод
Сейчас мой сайт:
- Не собирает ПДн (нет формы, нет комментариев)
- Использует Telegram-виджет
- Публикует записи с аккуратным шаблоном без ссылок в анонсе
- Работает быстро и безопасно
А Telegram наконец-то показывает активные обсуждения прямо на сайте.