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: для типового завдання «вставити зовнішній файл у пост» його вистачає із запасом. А якщо ви вже використовували цей плагін або вирішували схоже завдання інакше, розкажіть у коментарях, який інструмент обрали.