Как удалить Embed код из WordPress без плагинов

В WordPress по умолчанию при вставке URL с поддержкой oEmbed, например, видео с YouTube или записи из Twitter, автоматически генерируется встроенный (embed) код, который выводит контент в виде плеера или виджета. В большинстве случаев это удобно, но бывают ситуации, когда нужно отключить эту функцию и удалить embed код, чтобы избежать лишних скриптов, ускорить загрузку сайта или сохранить строгий контроль над выводом контента.

Что такое embed код в WordPress и зачем его отключать?

Embed код — это HTML и JavaScript, который WordPress автоматически добавляет при вставке ссылки. Например, если вы вставите в редактор ссылку на видео с YouTube, WordPress заменит её на iframe с плеером. Это удобно, но если вы хотите, например, отображать только ссылку без плеера или вставлять свой собственный код, нужно отключить эту функцию.

Причины отключения embed могут быть следующими:

  • Ускорение загрузки страниц за счёт уменьшения количества сторонних скриптов.
  • Избежание конфликтов с другими плагинами или темами.
  • Повышение безопасности — меньшее количество внешних вызовов.
  • Контроль над выводом контента — вставка только необходимого HTML.

Как WordPress реализует oEmbed и где происходит вставка кода

WordPress использует встроенный класс WP_oEmbed и фильтры для обработки ссылок. При рендеринге контента с URL, который поддерживает oEmbed, происходит автоматическая замена ссылки на embed код через фильтр the_content. Кроме того, в REST API и редакторе Gutenberg тоже есть поддержка oEmbed.

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

Отключение Embed кода через functions.php: пошаговый пример

В файле functions.php вашей активной темы (или лучше дочерней темы) добавьте следующий код, который полностью отключит автоматическую замену ссылок на embed код:

function wpskills_disable_embed_code() {
    // Отключаем oEmbed REST API endpoint
    remove_action('rest_api_init', 'wp_oembed_register_route');

    // Отключаем oEmbed discovery links в заголовке страницы
    remove_action('wp_head', 'wp_oembed_add_discovery_links');

    // Отключаем oEmbed-specific JavaScript
    remove_action('wp_head', 'wp_oembed_add_host_js');

    // Убираем фильтры, которые заменяют URL на embed код в контенте и комментариях
    remove_filter('the_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
    remove_filter('comment_text', array($GLOBALS['wp_embed'], 'autoembed'), 8);
}
add_action('init', 'wpskills_disable_embed_code');

Этот код отключит все основные механизмы вставки embed кода, включая REST API, скрипты и фильтры замены ссылок.

Объяснение кода:

  • remove_action('rest_api_init', 'wp_oembed_register_route') — отключает endpoint REST API для oEmbed.
  • remove_action('wp_head', 'wp_oembed_add_discovery_links') — удаляет мета-теги в шапке сайта, связанные с oEmbed.
  • remove_action('wp_head', 'wp_oembed_add_host_js') — не подключает скрипты для oEmbed.
  • remove_filter('the_content', array($GLOBALS['wp_embed'], 'autoembed'), 8) — отключает автоматическую замену ссылок на embed код в содержимом постов.
  • remove_filter('comment_text', array($GLOBALS['wp_embed'], 'autoembed'), 8) — отключает такую же замену в комментариях.

Как сохранить возможность вставлять вручную iframe или другой embed код

Важно: приведённый метод отключает только автоматическую вставку embed кода по ссылке. Если вы хотите вставлять iframe или другой embed код вручную через визуальный или текстовый редактор — это останется доступным.

Вы можете использовать стандартный HTML блок в Gutenberg или переключиться в текстовый режим Classic Editor и вставить нужный iframe:

<iframe width="560" height="315" src="https://www.youtube.com/embed/VIDEO_ID" frameborder="0" allowfullscreen></iframe>

Таким образом, вы получаете полный контроль над выводом мультимедийного контента без автоматических вставок WordPress.

Альтернативный способ: отключение embed через плагин Clearfy

Если вы используете плагин Clearfy Pro, он предоставляет удобный интерфейс для отключения oEmbed функций без редактирования кода. В Clearfy достаточно перейти в настройки оптимизации и отключить «oEmbed и автоматическую вставку embed».

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

Дополнительные советы по работе с embed кодом в WordPress

Если вам нужно selectively отключать embed код только на некоторых типах страниц или постов, можно модифицировать функцию следующим образом:

function wpskills_conditional_disable_embed() {
    if (is_single() || is_page()) { // Например, отключаем только на одиночных страницах и постах
        remove_filter('the_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
    }
}
add_action('wp', 'wpskills_conditional_disable_embed');

Также если у вас используется тема Reboot или Root от WPSHOP, убедитесь, что в ней нет собственных функций или хуков, которые могут повторно добавлять embed код. В таком случае применяйте аналогичные методы удаления фильтров.

Заключение

Отключение автоматического embed кода в WordPress без плагинов — это простой и эффективный способ оптимизировать сайт, повысить безопасность и контролировать вывод контента. Используйте приведённые функции в functions.php для полной деактивации oEmbed, при необходимости комбинируйте с ручной вставкой iframe или плагинами типа Clearfy для удобства.

WooCommerce: как исправить проблему с неотображением атрибутов вариаций товаров
12.05.2026
Как удалить CSS класс из HTML элемента в WordPress без плагинов
28.02.2026
WooCommerce: авторизация через телефон без плагинов
08.05.2026
Как добавить вывод краткого описания (excerpt) в архиве WordPress
08.02.2026
Как отключить комментарии на отдельных страницах WordPress
31.03.2026