O que o wp-embed.min.js faz no WordPress 4.4?

52

Pergunta, questão

  1. O que o wp-embed.min.jsarquivo faz? Notei que ele foi adicionado ao final do rodapé da página do meu blog.
  2. Como posso me livrar disso?

Esforço

Depois de pesquisar no Google e encontrei incorporações no Codex. Por que o WordPress pensa que quero adicionar vídeos etc. à minha página por padrão?

Meio Ambiente

WordPress 4.4

Pmpr
fonte
11
Esta é probabli relacionadas com wp como servidor oEmbed e não um cliente
Mark Kaplun
Eu tentei adicionar a resposta à primeira parte da pergunta
prosti
11
Certeza de que existe apenas para diminuir a velocidade da sua página.
Josh Habdas 17/04
@MarkKaplun está correto. O wp-embed.min.js permite incorporar postagens de sites remotos do WordPress em seu próprio site, via oEmbed.
Jonathan Nicol

Respostas:

61

Eu poderia finalmente me livrar disso usando isso:

function my_deregister_scripts(){
  wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
Pmpr
fonte
4
Adicioná-lo à ação "wp_enqueue_scripts" também parece funcionar.
andershagbard
7
Sim, eu usaria o wp_enqueue_scriptsgancho e, em wp_dequeue_script()vez dewp_deregister_script()
swissspidy 17/01
@swissspidy wp_dequeue_script( 'wp-embed' );não vai funcionar - você pode fazer um teste? A recomendação de capa é válida.
Aziz
No WordPress 4.6, o script @Trix funciona bem. Obrigado!
Sebastian
11
Usar isso não passará na verificação .
lowtechsun
20

Cheguei a esse segmento com a mesma pergunta: O que o arquivo wp-embed.min.js faz? Nenhuma das respostas atuais aborda com precisão essa pergunta.

Em primeiro lugar, tenho certeza de que o embed.min.js não está relacionado à incorporação de conteúdo oEmbed de outros provedores: Vimeo, YouTube etc. Você pode remover o embed.min.js e essas incorporações continuarão funcionando.

Relaciona-se especificamente à incorporação de postagens do WordPress de blogs / sites de outras pessoas. Incorporar postagens do WordPress dentro de postagens do WordPress: so meta! Esse recurso foi introduzido no WordPress 4.4 .

Desativar o embed.min.js impedirá que esse recurso funcione no seu site.

Você pode testar isso facilmente: cole o URL da postagem do WordPress de outra pessoa em uma de suas próprias postagens. O WP deve converter esse URL em um widget incorporado. Ao visualizar sua postagem no front-end, você notará que sua marcação contém uma citação em bloco e um iframe. A citação em bloco é um link somente de texto para a postagem do blog que você incorporou, enquanto a fonte do iFrame é o URL da postagem do blog em /embed/anexo: seu ponto final incorporado .

embed.min.js oculta a citação em bloco e revela o iframe. Ele também faz algumas outras travessuras para fazer com que o iframe seja agradável.

Agora, tente remover o script embed.min.js da sua página usando um dos métodos descritos nas outras respostas. Recarregue sua página e você notará que a citação em bloco está visível, mas o iframe está oculto.

Em resumo: se você deseja incorporar as postagens do WordPress de outras pessoas em suas próprias postagens do WordPress, deixe embed.min.js em paz. Se você não se importa com esse recurso, pode removê-lo com segurança.

Jonathan Nicol
fonte
3
Observe que a remoção embed.jsnão é suficiente para desativar adequadamente as incorporações e pode até levar a um comportamento estranho, se não for feito corretamente. Para desativar completamente essas incorporações, use o plug-in Desativar oficialmente recomendado .
swissspidy
Trabalhando conforme o esperado e explicado no word-press 5.x também.
inrsaurabh 9/03
8

A resposta de Trix não funcionou para mim no WordPress 4.4.1, mas eu encontrei uma solução no código do plugin Desativar incorporações do WordPress. Adicione este código (modificado) ao functions.phparquivo do seu tema para remover completamente o wp-embed.min.jsarquivo do front-end:

add_action( 'init', function() {

    // Remove the REST API endpoint.
    remove_action('rest_api_init', 'wp_oembed_register_route');

    // Turn off oEmbed auto discovery.
    // 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');
}, PHP_INT_MAX - 1 );
Nadeem Khan
fonte
3
Usar disable_embeds_init()como nome da função é uma péssima idéia. Se você for instalar o plug-in Desativar incorporações um dia, o céu cairá. Eu recomendo que você apenas instale o plugin, não há nenhum benefício em adicionar isso ao arquivo functions.php do seu tema. Se você insistir em fazer isso, realmente deve usar outro nome de função.
swissspidy
Obrigado pela sugestão @swissspidy, atualizei o nome da função
Nadeem Khan
2
Note que isso não irá apenas remover a JS do cliente / servidor, que também irá desativar completamente a capacidade de incorporar as suas mensagens em outro site, WP oEmbed não vai funcionar
Tom J Nowell
Artigo sobre o Kinsta descreve esse método de uso de filtros para removê-lo kinsta.com/knowledgebase/disable-embeds-wordpress
Andrew Schultz -
4

Eu acho que essa parte ainda está faltando.

O que o arquivo wp-embed.min.js faz? Notei que ele foi adicionado ao final do rodapé da página do meu blog.

A resposta para esta pergunta está na pista. https://core.trac.wordpress.org/changeset/35708

Incorporações: remova & caracteres da JS incorporada embutida.

As versões mais antigas do WordPress converterão esses caracteres para &, o que contribui para algumas JS não funcionais. Se as pessoas estão executando um lançamento mais antigo, não tornemos a vida mais difícil do que já é.

Ele também tentará cheirar o agente do usuário.

prosti
fonte
2
O texto que você citou ("Remover & caracteres da JS incorporada embutida" etc.). é uma única mensagem de confirmação para o arquivo, mas não descreve a finalidade geral do script. Eu forneci minha própria resposta que, esperançosamente, lança mais luz.
Jonathan Nicol