Как отключить oEmbed и автоподстановку встраиваний из ссылок в WordPress

Если в редакторе WordPress вставка ссылки на YouTube, X, Instagram или другой поддерживаемый сервис автоматически превращается в встроенный блок, это удобно не всегда. На небольших сайтах такая автоподстановка часто добавляет лишние запросы, усложняет контроль над разметкой и иногда ломает верстку в старых темах или кастомных шаблонах.

Задача здесь не в том, чтобы «убрать все embeds вообще», а в том, чтобы отключить именно WordPress oEmbed-механику там, где она не нужна: автопреобразование URL в iframe, загрузку связанных скриптов и лишние REST-эндпоинты для предпросмотра встраиваний.

Когда это действительно нужно

Чаще всего проблема всплывает в трех сценариях: редакторы вставляют обычные ссылки, а на фронтенде появляются тяжелые iframe; в шаблоне статьи ломается сетка из-за встроенного видео; на сайте с минималистичной темой хочется оставить только обычные ссылки без автоподстановки.

Еще один практический кейс — техническая оптимизация. Если вы не используете встроенные превью из внешних сервисов, oEmbed просто создает лишнюю нагрузку без пользы. Это не критичная нагрузка, но на контентных сайтах с большим числом страниц такие мелочи накапливаются.

Диагностика: что именно включает WordPress

Сначала проверьте, что проблема именно в oEmbed, а не в плагине или блоке темы. В классическом редакторе и в Gutenberg WordPress может автоматически подменять URL на embed-предпросмотр. На фронтенде при этом подключается скрипт wp-embed.min.js, а в HTML появляются iframe или обертки под встраивание.

Признаки, что oEmbed активен

  • обычная ссылка на видео или пост превращается в встроенный блок;
  • в исходном коде страницы есть wp-embed.min.js;
  • в редакторе URL отображается как embed-превью, а не как текстовая ссылка;
  • в шаблоне появляются лишние внешние запросы к сервисам, которые вы не планировали использовать.

Если embed добавляет не WordPress, а сам плагин или блок темы, отключение oEmbed не поможет. В таком случае нужно искать источник в настройках конкретного плагина, блоков или в шаблоне.

Как отключить автоподстановку встраиваний через код

Самый надежный способ — убрать oEmbed на уровне темы или мини-плагина. Это лучше, чем править ядро или надеяться на случайные настройки в админке.

<?php
add_action('init', function () {
    // Убираем автопреобразование ссылок в embed.
    remove_filter('the_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
    remove_filter('widget_text_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
    remove_filter('widget_block_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
});

add_action('wp_enqueue_scripts', function () {
    // Убираем фронтенд-скрипт oEmbed, если он больше не нужен.
    wp_dequeue_script('wp-embed');
    wp_deregister_script('wp-embed');
}, 100);

Этот вариант отключает именно автоподстановку и связанный скрипт на фронтенде. Если вы используете embed-карточки осознанно, не применяйте этот код без теста на копии сайта.

Если нужно отключить только автоподстановку, но оставить ручные embed-блоки

Иногда достаточно убрать автоматическое преобразование URL, но оставить возможность вставлять embed вручную через блок «Встраивание». Тогда не трогайте все связанные механизмы, а отключайте только фильтр автоподстановки.

<?php
add_action('init', function () {
    remove_filter('the_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
});

Это более мягкий вариант. Он полезен, если редакторы иногда вставляют видео вручную, но вы не хотите, чтобы любая ссылка на поддерживаемый сервис превращалась в iframe сама по себе.

Сравнение подходов: код, плагин, компромисс

ПодходЧто делаетПлюсыМинусы
Код в теме или mu-pluginОтключает autoembed и скрипт wp-embedТочно, прозрачно, без лишнего интерфейсаНужно тестировать на совместимость
Плагин оптимизацииМожет убирать embed и другие лишние функцииУдобно для неразработчикаЧасто отключает больше, чем нужно
Ничего не менятьОставить поведение по умолчаниюНет риска сломать embedЛишние скрипты и автозамены остаются

Если нужен более широкий контроль над чисткой WordPress, обычно удобнее собрать это в одном месте через плагин оптимизации вроде Clearfy Pro, но только если вы действительно используете его и понимаете, какие опции включаете. Для точечной задачи код чаще надежнее.

Пошаговое решение без лишних рисков

  1. Сделайте резервную копию файлов и базы.
  2. Проверьте, где именно используется embed: записи, виджеты, шаблоны, блоки.
  3. Добавьте код в дочернюю тему или в отдельный mu-plugin.
  4. Очистите кеш страницы и, если есть, кеш CDN.
  5. Откройте несколько страниц с обычными ссылками и убедитесь, что они больше не превращаются во встроенные блоки.

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

Как проверить, что решение сработало

Проверка должна быть не только визуальной. Откройте страницу с ссылкой на поддерживаемый сервис и убедитесь, что она отображается как обычная ссылка, а не как iframe или карточка предпросмотра. Затем проверьте исходный код страницы: скрипт wp-embed.min.js не должен загружаться, если вы его отключили.

Дополнительно проверьте редактор. Если вы вставляете URL в новый абзац, WordPress не должен автоматически подменять его на embed-блок. Если подмена осталась, значит фильтр отключен не там, где нужно, или его снова подключает плагин.

Частые ошибки и как их исправить

  • Код добавили в файл темы, а потом обновили тему. Решение: перенесите правку в дочернюю тему или mu-plugin.
  • Отключили wp-embed, но iframe остались. Значит embed вставляет не WordPress, а блок, плагин или вручную добавленный HTML.
  • Сломались старые записи с видео. Проверьте, не использовали ли вы автоподстановку как единственный способ вставки контента. Для таких записей лучше оставить ручные embed-блоки или заменить их на обычные ссылки.
  • После правки ничего не изменилось. Очистите кеш плагина, сервера и CDN, затем проверьте страницу в приватном окне.

Что учесть по безопасности и производительности

Отключение oEmbed само по себе не делает сайт безопаснее, но уменьшает количество внешних зависимостей и неожиданных вставок. Это полезно, если редакторы часто копируют ссылки из разных источников и не всегда понимают, как WordPress их интерпретирует.

Если вы хотите оставить embed только для части контента, лучше заранее описать редакторам правило: обычные ссылки — для текста, embed-блок — только когда нужен именно встроенный медиаконтент. Так проще избежать случайных поломок верстки и лишних запросов.

Если задача шире и вы регулярно чистите WordPress от лишних функций, имеет смысл собрать такие настройки в один технический слой: отключение oEmbed, emoji, лишних REST-эндпоинтов, неиспользуемых скриптов. Но каждую опцию нужно проверять отдельно, а не включать все подряд.

WooCommerce: автоматическое изменение стоимости товаров при изменении количества в корзине
16.08.2026
Как отключить XML-RPC для внешних запросов и оставить рабочими Jetpack и мобильные приложения
30.09.2026
Автоматическое отключение неактивных пользователей WordPress: практическое руководство
15.09.2026
Автоматическое создание пользовательских метаполей в WordPress: практическое руководство с примерами кода
15.09.2026
Автоматическое удаление неиспользуемых плагинов в WordPress: практическое руководство с примерами кода
15.09.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее