¿Qué hace wp-embed.min.js en WordPress 4.4?

52

Pregunta

  1. ¿Qué hace el wp-embed.min.jsarchivo? Noté que se agrega al final del pie de página de mi blog.
  2. ¿Cómo puedo deshacerme de él?

Esfuerzo

Después de buscar en Google y encontré Embed en el Codex. ¿Por qué WordPress cree que quiero agregar videos, etc. a mi página de forma predeterminada?

Ambiente

WordPress 4.4

Pmpr
fuente
1
Esto es probablemente relacionado con wp como servidor oEmbed y no como cliente
Mark Kaplun
Traté de agregar la respuesta a la primera parte de la pregunta
prosti
11
Estoy bastante seguro de que está ahí para ralentizar su página.
Josh Habdas
@MarkKaplun es correcto. wp-embed.min.js le permite insertar publicaciones de sitios remotos de WordPress en su propio sitio de WordPress, a través de oEmbed.
Jonathan Nicol

Respuestas:

61

Finalmente podría deshacerme de eso usando esto:

function my_deregister_scripts(){
  wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
Pmpr
fuente
44
Agregarlo en la acción "wp_enqueue_scripts", también parece funcionar.
andershagbard
77
Sí, usaría el wp_enqueue_scriptsgancho y en wp_dequeue_script()lugar dewp_deregister_script()
swissspidy
@swissspidy wp_dequeue_script( 'wp-embed' );no funcionará, ¿puede realizar una prueba? La recomendación de la campana es válida.
Aziz
En WordPress 4.6, el script @Trix funciona bien. ¡Gracias!
Sebastian
1
El uso de este no pasará themecheck .
lowtechsun
20

Llegué a este hilo con la misma pregunta: ¿Qué hace el archivo wp-embed.min.js? Ninguna de las respuestas actuales aborda con precisión esta pregunta.

En primer lugar, estoy bastante seguro de que embed.min.js no se relaciona con la incrustación de contenido oEmbed de otros proveedores: Vimeo, YouTube, etc. Puede eliminar embed.min.js y esas incrustaciones continuarán funcionando.

Se relaciona específicamente con la inserción de publicaciones de WordPress desde blogs / sitios web de otras personas. Incrustar publicaciones de WordPress dentro de publicaciones de WordPress: ¡tan meta! Esta característica se introdujo en WordPress 4.4 .

Deshabilitar embed.min.js impedirá que esa característica funcione en su sitio.

Puede probar esto fácilmente: pegue la URL de la publicación de WordPress de otra persona en una de sus propias publicaciones. WP debe convertir esa URL en un widget incrustado. Cuando vea su publicación en el front-end, notará que su marcado contiene una cita en bloque y un iframe. La cita en bloque es un enlace de solo texto a la publicación del blog que incrustó, mientras que la fuente del iFrame es la URL de la publicación del blog con un /embed/anexo: su punto final oEmbed.

embed.min.js oculta la cita en bloque y revela el iframe. También hace otras travesuras para hacer que el iframe funcione bien.

Ahora, intente eliminar el script embed.min.js de su página utilizando uno de los métodos descritos en las otras respuestas. Vuelva a cargar su página y notará que la cita en bloque está visible pero el iframe está oculto.

En resumen: si desea incrustar las publicaciones de WordPress de otras personas en sus propias publicaciones de WordPress, deje solo embed.min.js. Si no le importa esta función, puede eliminarla de forma segura.

Jonathan Nicol
fuente
3
Tenga en cuenta que la eliminación embed.jsno es suficiente para deshabilitar adecuadamente las incrustaciones e incluso puede conducir a un comportamiento extraño si no se hace correctamente. Para deshabilitar completamente estas incrustaciones, use el complemento Deshabilitar incrustaciones oficialmente recomendado .
swissspidy
Trabajando como se esperaba y explicado en word-press 5.x también.
inrsaurabh
8

La respuesta de Trix no me funcionó en WordPress 4.4.1, pero encontré una solución en el código del complemento Disable Embeds WordPress. Agregue este código (modificado) en el functions.phparchivo de su tema para eliminar el wp-embed.min.jsarchivo de la interfaz por completo:

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
fuente
3
Usar disable_embeds_init()como nombre de función es una muy mala idea. Si vas a instalar el complemento Disable Embeds algún día, el cielo se caerá. Le recomiendo que solo instale el complemento, no hay ningún beneficio en agregar esto al archivo functions.php de su tema. Si insiste en hacerlo, realmente debería usar otro nombre de función.
swissspidy
Gracias por la sugerencia @swissspidy, he actualizado el nombre de la función
Nadeem Khan el
2
Tenga en cuenta que esto no solo eliminará el JS del frontend / backend, sino que también deshabilitará por completo la capacidad de insertar sus publicaciones en otro sitio, WP Oembed no funcionará
Tom J Nowell
El artículo sobre Kinsta explica este método de uso de filtros para eliminarlo kinsta.com/knowledgebase/disable-embeds-wordpress
Andrew Schultz
4

Creo que esta parte todavía falta.

¿Qué hace el archivo wp-embed.min.js? Noté que se agrega al final del pie de página de mi blog.

La respuesta a esta pregunta está en la pista. https://core.trac.wordpress.org/changeset/35708

Incrustaciones: eliminar y caracteres de la JS incrustada en línea.

Las versiones anteriores de WordPress convertirán esos & caracteres en &, lo que hace que algunos JS no funcionen. Si la gente está ejecutando una versión anterior, no hagamos sus vidas más difíciles de lo que ya es.

También intentará detectar el agente de usuario.

prosti
fuente
2
El texto que ha citado ("Eliminar y caracteres de la JS incrustada en línea", etc.). es un mensaje de confirmación único para el archivo, pero no describe el propósito general del script. He proporcionado mi propia respuesta que, con suerte, arroja más luz.
Jonathan Nicol