Май
14
2

Отключаем срабатывание Embed в WordPress через сниппет и плагин Disable Embeds

Отключение Embed в WordPressФункция oEmbed в WordPress, о которой сегодня пойдет речь, появилась в версии 4.4. Она позволяет автоматически встраивать на сайт информацию из внешней веб-страницы по ссылке, указанной в текстовом редакторе. То есть вы, например, размещаете в посте линк на Twitter, Youtube, а система тут же «подхватывает» соответствующее содержимое из этого источника. Все ресурсы, поддерживающие данную фишку, называются oEmbed провайдерами, и с недавних пор Вордпресс также к ним присоединился. Как и в случае с отключением Emoji, логично, что опция пришлась по душе не всем, поэтому сегодня рассмотрим как убрать срабатывание Embed в WordPress.

Плюсы / минусы oEmbed

В принципе, здесь есть свои положительные стороны. Если вы часто делаете какие-то отсылки на другие блоги, то подобные вставки могут быть достаточно удобны, т.к. они кроме самого линка добавляют также иллюстрацию + небольшой анонс. Вот так выглядят разные варианты размещения ссылок:

Пример работы oEmbed в WordPress

Визуально вторая реализация смотрится гораздо красивее. Плюс вам не нужно тратить время на вставку ссылки в картинку или в текст.

Если говорить о недостатках, то здесь можно выделить:

  • Дополнительную нагрузку на сайт, т.к. Embed в Вордпресс внедряет соответствующий скрипт в код страницы и заодно создает лишние HTTP запросы.
  • Иногда опция раздражает, когда нужно просто добавить список обычных линков в черновик статьи (например для последующего редактирования), а они автоматически заменяются.
  • Возможно, вам не хочется чтобы другие веб-проекты автоматически считывали информацию из вашего (пусть даже короткий анонс с картинкой).

По каким бы причинам вы не решились убрать данную фишку, выбирайте один из следующих методов.

Плагин Disable Embeds

Модуль упоминается практически во всех статьях по теме, к тому же у него 10тыс. скачиваний, что тоже свидетельствует о некой популярности. Оценка почти максимальная, обновление было недавно. Настроек здесь нет, Disable Embeds работает сразу после активации.

Плагин Disable Embeds

Основные функции:

  • отключение возможности встраивания своего контента на других ресурсах;
  • предотвращения автоматического срабатывания oEmbed в WordPress (кроме сайтов из белого списка, правда, о них в описании ничего не сказано);
  • удаление всех JavaScript, связанных с этой фишкой.

Учитывая наличие кэширования в системе, предыдущие «вставки», которые вы добавляли ранее, могут работать. Однако ваши коды на сторонних сайтах — нет.

Есть в сети и другие подходящие WP модули, в том числе комплексные решение по типу Clearfy, Wp-Disable и др., где деактивация oEmbed является лишь одной из множества функций. Если вы используете что-то похожее, то ставить дополнительно Disable Embeds, скорее всего, нет смысла.

Решение задачи без плагинов

На скриншоте-примере выше, как видите, ссылка из WordPressInside не была преобразована. Вероятно, потому что я ранее добавлял некий код при оптимизации WordPress Header блока, хотя встраивание в самом блоге все еще работает.

Дабы полностью избавиться от срабатывания oEmbed, нужно разместить в functions.php куда более сложный код:

function disable_embeds_code_init() {
 
 // Remove the REST API endpoint.
 remove_action( 'rest_api_init', 'wp_oembed_register_route' );
 
 // Turn off oEmbed auto discovery.
 add_filter( 'embed_oembed_discover', '__return_false' );
 
 // Don't filter oEmbed results.
 remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
 
 // Remove oEmbed discovery links.
 remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
 
 // Remove oEmbed-specific JavaScript from the front-end and back-end.
 remove_action( 'wp_head', 'wp_oembed_add_host_js' );
 add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
 
 // Remove all embeds rewrite rules.
 add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
 
 // Remove filter of the oEmbed result before any HTTP requests are made.
 remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}
 
add_action( 'init', 'disable_embeds_code_init', 9999 );
 
function disable_embeds_tiny_mce_plugin($plugins) {
    return array_diff($plugins, array('wpembed'));
}
 
function disable_embeds_rewrites($rules) {
    foreach($rules as $rule => $rewrite) {
        if(false !== strpos($rewrite, 'embed=true')) {
            unset($rules[$rule]);
        }
    }
    return $rules;
}

function my_deregister_scripts(){
 wp_dequeue_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

Источник решения эта статья. Конечно, при внедрении следует помнить, что допущенные ошибки могут «сломать» сайт, поэтому советую сделать запасную версию файла функций перед его изменением.

Итого. В принципе, отключать Embed в WordPress не обязательно, данная фишка в большинстве случаев никакого плохого эффекта не делает. С другой стороны, если вы точно не собираетесь ее использовать, можно все же деактивировать через сниппет или модули.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 3, средний балл: 5,00 из 7)
Загрузка...

категория Категории: Возможности;
теги Теги: , , , , , .

комментария 2 к статье “Отключаем срабатывание Embed в WordPress через сниппет и плагин Disable Embeds”

  • Маша   19.05.2018

    А мне больше нравится вариант со втроенным (Embed) блоком — там и картинка, и анонс.. а не просто унылая ссылка. По моему разработчики наоборот все полезную фишку сделали.

  • Tod   19.05.2018

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

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Поиск:
Последние посты
Заработай в GoGetLinks
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости