Skip to content

Всё для WordPress, веб-разработки — и не только

📄 Как вставить HTML-файл в страницу WordPress: плагин Include Me

📄 Как вставить HTML-файл в страницу WordPress: плагин Include Me

Сверстали форму обратной связи в отдельном .html, написали скрипт отчёта на PHP, а WordPress-редактор режет код при каждом сохранении? Знакомая боль для всех, кто выходит за рамки стандартного блочного конструктора.

Include Me решает эту задачу одной строкой шорткода: подключает внешний HTML/PHP-файл или содержимое другой записи прямо в тело поста. Плагин живёт в каталоге WordPress.org с 4 000+ активных установок, рейтингом 4,8 и обновлением под WP 6.9.4. Автор, Stefano Lissa, создатель Newsletter и Hyper Cache.

Ниже, полный разбор: от установки до передачи переменных в PHP-скрипты и безопасного iframe-режима.

💡 Быстрый обзор:

  • Установите Include Me из каталога WordPress.org (Plugins → Add New, поиск «Include Me»).
  • Загрузите целевой HTML/PHP-файл в папку /wp-content/include-me/ на сервере.
  • Вставьте шорткод [includeme file="ваш-файл.html"] в нужном месте поста или страницы.
  • Для PHP-файлов: плагин выполнит скрипт и выведет результат. Для HTML, вставит как есть.
  • Альтернативно подключите другую запись WordPress через post_id или внешний URL через iframe-синтаксис.

Что такое Include Me и когда он нужен

Include Me, легковесный плагин (всего несколько строк кода, по словам автора), который решает конкретную задачу: вставку внешнего файла в тело поста или страницы WordPress через шорткод.

Когда это нужно на практике:

  • Формы и калькуляторы. Вы написали HTML-форму с CSS и JS, редактор блоков искажает разметку при каждом переключении между визуальным и текстовым режимом. Include Me вставляет файл байт-в-байт, ничего не трогая.
  • PHP-отчёты. Скрипт собирает данные из базы, формирует таблицу и выводит HTML. Include Me выполняет PHP и показывает результат внутри поста, без правки темы.
  • Общие блоки. Один и тот же файл (ценник, дисклеймер, контактный блок) нужно показывать на десятке страниц. Меняете файл, обновляется везде автоматически.
  • Контент чужой записи. Подключили текст другой страницы через post_id, и он синхронизирован: редактируете в одном месте, отображается во всех.

Главное преимущество перед кастомной страницей темы: при смене темы ваши файлы остаются на месте. Тема меняется, контент живёт независимо.

Установка и первый запуск

Установка стандартная, через админку WordPress:

  • Plugins → Add New.
  • В строке поиска наберите «Include Me».
  • Найдите плагин авторства Stefano Lissa, нажмите Install NowActivate.

После активации плагин готов к работе, никаких экранов настроек нет. Вся «настройка» делается через синтаксис шорткода.

Путь к файлам по умолчанию: /wp-content/include-me/. Именно в эту папку загружайте файлы, которые планируете подключать. Если нужна другая директория, добавьте в wp-config.php:

1define('INCLUDE_ME_DIR', '/путь/к/вашей/папке');

Хотите подключать файлы из любого места сервера, поставьте звёздочку (но безопаснее ограничить одной папкой):

1define('INCLUDE_ME_DIR', '*');

Важное ограничение безопасности: начиная с версии 1.3.0 шорткод [includeme] выполняется только в постах, принадлежащих администратору. Файлы по умолчанию ищутся внутри корневой папки сайта (ABSPATH и ниже). Это не баг, а защита: Include Me выполняет PHP-код, и давать такую возможность кому попало нельзя.

Базовый синтаксис: подключаем HTML и PHP-файлы

Пример вставки HTML-файла через плагин Include Me

Основной шорткод, [includeme file="имя-файла"]. Работает в любом посте, странице или виджете (через do_shortcode).

Пример 1: HTML-файл. Вы подготовили price-table.html с вёрсткой цен и стилями. Загрузили в /wp-content/include-me/. В посте пишете:

1[includeme file="price-table.html"]

Плагин читает файл и вставляет его содержимое ровно в то место, где стоит шорткод. Тег <style> внутри файла, работает. Инлайн-JS, работает. Никакого «очищения» разметки.

Пример 2: PHP-скрипт. Файл report.php делает SELECT из базы и выводит таблицу. Расширение .php, триггер для Include Me: плагин не просто читает файл, а выполняет его через include. Вывод скрипта (echo/print) попадает в пост:

1[includeme file="report.php"]

Пример 3: Относительный путь. Путь без слеша в начале (file="myfolder/data.html") отсчитывается от корня сайта (ABSPATH). Абсолютный путь (file="/var/www/external/widget.html"), от корня файловой системы сервера. В большинстве случаев используют относительный путь к файлу внутри /wp-content/include-me/.

Подключение другой записи или страницы через post_id

Разработчики Include Me добавили синтаксис для подтягивания контента существующей записи WordPress. Шорткод:

1[includeme post_id="42"]

Где 42, числовой ID нужного поста или страницы. Как узнать ID: в админке наведите курсор на ссылку «Edit» нужной записи, в статусной строке браузера увидите post=42.

Этот приём удобен для юридических страниц. Политика конфиденциальности или условия использования часто дублируются, один экземпляр в «родительской» странице, на остальных, Include Me с post_id. Юрист правит текст в одном месте, обновляется везде.

Обратите внимание: подтягивается только контент записи, без заголовка. Если нужен и заголовок, придётся дублировать его внутри контента или использовать [includeme file="..."] с PHP-скриптом, который дёрнет get_post().

Iframe-режим: встраиваем внешний URL

Третий синтаксис генерирует <iframe> вместо прямого включения:

1[includeme src="https://example.com/widget"]

Любые дополнительные атрибуты передаются в <iframe> как HTML-атрибуты:

1[includeme src="https://example.com/widget" frameborder="0" width="600" height="450"]

Результат, полноценный iframe с заданными размерами. Это альтернатива прямому включению для случаев, когда:

  • Нужно показать внешнюю страницу как «окно» внутри поста.
  • Подключаемый контент должен жить в изолированном контексте (свои CSS/JS, не конфликтующие с темой).
  • Требуется вставить интерактивный виджет (калькулятор, карта), который не должен выполняться в контексте WordPress.

Ограничение: iframe-режим не выполняет PHP, он просто показывает URL в рамке. Для серверного кода используйте file="...".

Передача переменных в PHP-скрипты

Самая мощная возможность Include Me, проброс параметров из шорткода в подключаемый PHP-файл. В шорткоде пишете:

1[includeme file="greeting.php" name="Алексей" plan="Pro"]

Внутри greeting.php получаете доступ к атрибутам через глобальный массив $attrs:

1<?php
2$user_name = $attrs['name'] ?? 'Гость';
3$user_plan = $attrs['plan'] ?? 'Free';
4
5echo "<p>Здравствуйте, {$user_name}! Ваш тариф: {$user_plan}.</p>";

Это превращает Include Me в мини-шаблонизатор. Один и тот же PHP-файл генерирует разный вывод в зависимости от атрибутов шорткода. Практичные сценарии:

  • Калькулятор цены. Один скрипт calc.php получает base_price и discount из шорткода, на разных страницах показывает разные расчёты.
  • Персонализированный блок. cta.php принимает heading и button_text, в каждом посте свой заголовок и кнопка, HTML-каркас общий.
  • Дашборд для клиента. client-stats.php получает client_id и выводит данные конкретного клиента из внешней CRM.

Чего Include Me не делает: ограничения

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

  • Только для администраторов. Шорткод работает лишь в постах, автором которых указан администратор. Авторы и редакторы использовать Include Me не могут, это осознанное ограничение безопасности (версия 1.2.2+).
  • Нет визуального редактора. Никакого UI в админке: плагин не добавляет metabox для выбора файла. Всё руками через шорткод.
  • Расширение .php обязательно для выполнения. Файл script.inc с PHP-кодом НЕ выполнится, плагин вставит его как текст. Переименуйте в script.php.
  • Нет кеширования. Каждый вызов шорткода читает файл с диска или выполняет PHP заново. Для высоконагруженных страниц с тяжёлыми скриптами, кешируйте вывод самостоятельно (через Transients API или плагин кеширования уровня страницы).

⁉️🤔 Частые вопросы

Работает ли Include Me с современными версиями WordPress?

Да, плагин протестирован вплоть до WordPress 6.9.4 и требует версии не ниже 6.1. Последнее обновление (1.3.7) вышло в феврале 2026 года, автор поддерживает совместимость с каждым мажорным релизом WP.

Безопасно ли подключать PHP-файлы через шорткод?

С версии 1.2.2 плагин выполняет PHP-файлы только из папки внутри корня сайта и только для постов администратора. Это исключает запуск произвольного кода через XSS или подставу URL. Дополнительно ограничьте папку через define('INCLUDE_ME_DIR', '...'), не используйте '*' без крайней необходимости.

Чем Include Me отличается от плагина Insert Pages?

Insert Pages фокусируется на вставке контента других записей, у него богатый набор опций форматирования и обёрток. Include Me проще и заточен под работу с файлами: HTML, PHP, TXT. Если задача, только подтянуть другую запись, Insert Pages удобнее. Если нужны PHP-скрипты и внешние файлы, Include Me.

Можно ли вставить тот же файл на десять страниц?

Да, именно для этого плагин и создан. Один файл в /wp-content/include-me/ подключается через одинаковый шорткод на любом количестве страниц. Изменили файл, контент обновился везде мгновенно, без пересохранения каждого поста.

Почему мой PHP-файл выводит пустоту?

Три частые причины: (1) файл не в папке INCLUDE_ME_DIR, и путь указан неверно; (2) в PHP-коде фатальная ошибка, проверьте WP_DEBUG и логи сервера; (3) файл сохранён с расширением .html или .inc вместо .php, Include Me выполняет только .php.

Что делать, если плагин перестанет обновляться?

Include Me состоит всего из нескольких строк кода (по словам автора) и не зависит от внешних сервисов. Даже без обновлений он продолжит работать годами, его логика не привязана к WP REST API, блокам или Gutenberg-специфике. Базовый шорткод-механизм WordPress не менялся с версии 2.5.

Что делать, если нужно больше: альтернативы и следующий шаг

Если Include Me не закрывает вашу задачу, вот два направления для расширения:

  • Вставка записей с форматированием: плагин Insert Pages подтягивает контент других постов с гибкими настройками отображения (заголовок, excerpt, произвольная обёртка).
  • Полноценный PHP-движок: плагин WPCode (бывший Insert Headers and Footers) позволяет вставлять PHP-сниппеты глобально или по условиям, с подсветкой синтаксиса и контролем ошибок.

Начните с Include Me: для типовой задачи «вставить внешний файл в пост» его хватает с запасом. А если вы уже использовали этот плагин или решали похожую задачу иначе, расскажите в комментариях, какой инструмент выбрали.