Как настроить форму подписки в Телеграмм канал передать часть заголовка в шаблоне?

Ссылка скопирована
1 ответ

Добрый день. Хочу разместить на своем сайте такой же шаблон

Как настроить форму подписки в Телеграмм канал передать часть заголовка в шаблоне?

как на сайте https://kulebiaka.ru/ Не пойму, как прописать в код, чтобы автоматически подставлялась часть заголовка. И чтобы сам шаблон появлялся на всех статьях. Вручную вставлять код в тело каждой статьи не вариант.

Дополнительно:

Ответы:

Публикации в тележку делаете через бота, и при публикации на некоторые посты выставляете какую-то галочку "лучшее".
Тогда движок может брать самый свежий пост с такой галочкой.

Вставить на каждую страницу - выставляйте в шаблон, а не в контента страниц.

  • Добрый день. Мне не нужно делать публикации с сайта в телеграм. Я хочу вставить в свой сайт, такую же форму как на скрине. Как поняла сделано это через плагин ТОС+. Что-то типа вывода второго содержания с основным заголовком. Не могу понять как его настроить.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Павел Админов Ответ

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

Пример шорткода для functions.php дочерней темы:

add_shortcode('telegram_subscribe_box', function () {
    if (! is_singular('post')) {
        return '';
    }
 
    $title = get_the_title();
    $short_title = preg_replace('/^(.{1,70})b.*$/u', '$1', $title);
 
    ob_start();
    ?>
    <div class="telegram-subscribe-box">
        <p>Больше материалов по теме «<?php echo esc_html($short_title); ?>» публикуем в Telegram.</p>
        <a href="https://t.me/your_channel" target="_blank" rel="noopener nofollow">Подписаться</a>
    </div>
    <?php
    return ob_get_clean();
});

add_shortcode('telegram_subscribe_box', function () { if (! is_singular('post')) { return ''; } $title = get_the_title(); $short_title = preg_replace('/^(.{1,70})b.*$/u', '$1', $title); ob_start(); ?> <div class="telegram-subscribe-box"> <p>Больше материалов по теме «<?php echo esc_html($short_title); ?>» публикуем в Telegram.</p> <a href="https://t.me/your_channel" target="_blank" rel="noopener nofollow">Подписаться</a> </div> <?php return ob_get_clean(); });

Если блок должен появляться автоматически после текста всех статей:

add_filter('the_content', function ($content) {
    if (! is_singular('post') || ! in_the_loop() || ! is_main_query()) {
        return $content;
    }
 
    return $content . do_shortcode('[telegram_subscribe_box]');
});

add_filter('the_content', function ($content) { if (! is_singular('post') || ! in_the_loop() || ! is_main_query()) { return $content; } return $content . do_shortcode('[telegram_subscribe_box]'); });

Если под "частью заголовка" имеется в виду не первые 70 символов, а конкретная часть до двоеточия, тире или другого разделителя, замените обработку на explode() или регулярное выражение под вашу структуру заголовков. Плагин содержания тут не обязателен: он решает другую задачу, а подстановку заголовка надежнее делать через WordPress-функции.

Перед внедрением на рабочем сайте проверьте решение на копии или хотя бы сделайте резервную копию изменяемого файла. После правки включите отображение ошибок, откройте проблемную страницу в обычном и приватном окне, проверьте консоль браузера и логи PHP. Если задача связана с WordPress, WooCommerce или ACF, дополнительно проверьте поведение после очистки кэша и после выхода из админки: часть ошибок видна только для незалогиненного пользователя.

Если код работает только в одном шаблоне, лучше не оставлять его разрозненно в нескольких файлах. Вынесите повторяемую логику в функцию, небольшой плагин или template part, а в шаблоне оставьте только вызов. Так проще поддерживать решение после обновления темы, плагинов и PHP.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно