Чат для сайта на WordPress

На WordPress один и тот же код можно вставить тремя разными способами — разница в том, что из этого переживёт следующее обновление темы.

Три способа поставить чат

На WordPress код чата вставляется тремя разными путями, и все три рабочие:

Заработает виджет чата в любом из трёх. Вопрос в другом: что из этого переживёт следующее обновление сайта.

Строка со скриптом чата вставляется перед закрывающим тегом body в файле footer.php. Ключевое слово здесь — «дочерней». Если дочерней копии у темы нет, правка уходит прямо в файлы родительской, и это ловушка. При очередном обновлении WordPress перезапишет footer.php целиком, и код исчезнет молча. Ошибки вы не увидите: просто в какой-то день заметите, что виджета на сайте больше нет.

Дочерняя тема с точки зрения WordPress — отдельная тема, которая наследует от родительской всё, кроме файлов, переопределённых внутри неё. Обновления родителя её не трогают. Заводить дочернюю тему ради одной строки кода, если её ещё нет, избыточно — для такого случая лучше подходит второй способ.

Плагин для вставки кода

Нет доступа к файлам темы или просто не хочется их трогать — ставьте плагин, который добавляет произвольный код в head или перед закрывающим body. Таких плагинов много, выбирать долго не придётся. Код чата указываете один раз, дальше плагин сам подставляет его на каждую страницу сайта, независимо от темы и её будущих обновлений.

Минус тот же, что у любого дополнительного плагина: ещё одна точка, за которой нужно следить при апдейтах WordPress. На практике для одного скрипта это меньшая проблема, чем риск потерять правку в footer.php.

Конструктор страниц

Elementor, Gutenberg и похожие конструкторы обычно дают блок для встраивания HTML-кода прямо в разметку страницы. Способ рабочий, болезнь у него ровно та же, что у блока в теле страницы на других платформах: код привязан к конкретной странице или шаблону, а не к сайту целиком. Значит, скрипт нужно класть в общий шаблон footer, который использует конструктор. Если разносить его по отдельным страницам, на части сайта чата просто не окажется.

Кэширующие плагины

WordPress почти всегда работает с плагином кэша — это нормально и ускоряет сайт. Проблема в другом: кэш хранит собранную страницу целиком, вместе с тем состоянием body, которое было до вставки кода. После установки виджета страница из кэша какое-то время ещё показывает старую версию без чата. Вставка тут ни при чём, посетителю просто отдают сохранённую копию.

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

Как не поставить чат дважды

Частая история: код вставили через плагин, а через полгода кто-то другой — скажем, при смене темы — добавил его же в footer.php, не зная про первый. На сайте оказываются два независимых виджета. Они либо налезают друг на друга в одном углу экрана, либо дерутся за одно и то же место в DOM, а в кабинет приходят двойные диалоги.

Особенно легко нарваться, если сайт по очереди делали разные люди: один программист поставил виджет через плагин год назад, второй сейчас переписывает тему и по привычке добавляет свой код в footer.php. Лечится это одним движением. Прежде чем вставлять код новым способом, откройте исходный код страницы в браузере и поищите строку со скриптом чата. Нашлась — второй раз вставлять не нужно. Минута сейчас экономит час поисков потом.

Чего это не решает

Все три способа закрывают только техническую часть: виджет появится на экране. Дальше начинается то же, что и на любой другой платформе. Без базы знаний чат отвечает общими фразами, и эту базу нужно либо собрать автоматически при обходе сайта, либо дописать руками. Подробный разбор шага — в статье про подключение чата на сайт. Полный список каналов, которые можно завести помимо сайта, — на странице каналов, а какой тариф покрывает нужный объём диалогов — на странице тарифов.

Ни один из способов не защищает от смены темы целиком: если вы переключаетесь на совершенно другую тему WordPress, а не обновляете текущую, вставку кода придётся повторить заново — правки footer.php одной темы не переносятся в другую автоматически.

Частые вопросы

Почему после установки виджет не появляется на сайте?

Чаще всего дело в кэширующем плагине — он показывает посетителям старую сохранённую версию страницы без нового кода; сбросьте кэш и проверьте сайт в режиме инкогнито, не из админки.

Что будет, если код чата стоит и в footer.php, и в плагине для вставки кода?

На сайте окажется два виджета одновременно — они будут спорить за один и тот же угол экрана и присылать двойные уведомления в кабинет; нужно оставить только один способ вставки.

Обязательна ли дочерняя тема, чтобы поставить чат?

Нет, если вы вставляете код через плагин или конструктор — тогда тема вообще не участвует; дочерняя тема нужна только для варианта с правкой footer.php.

Читайте дальше