¿Qué hace wp-embed.min.js en WordPress 4.4?
Pregunta
- ¿Qué hace el archivo
wp-embed.min.js
? He notado que se agrega al final del pie de página de mi blog. - ¿Cómo puedo eliminarlo?
Esfuerzo
Después de buscar en Google, encontré Embeds en el Codex. ¿Por qué WordPress asume que quiero agregar videos, etc. a mi página por defecto?
Entorno
WordPress 4.4

¿Qué es?
Se encarga de convertir enlaces en marcos incrustados (embeds).
Por ejemplo, puedes pegar un enlace de un video de Youtube en la sección de contenido del editor y se generará el embed de Youtube automáticamente cuando se visualice la página.
Más información en la Documentación de WordPress
¿Cómo eliminarlo?
Finalmente pude desactivarlo usando esto:
function my_deregister_scripts(){
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

Agregarlo en la acción "wp_enqueue_scripts", también parece funcionar.

Sí, usaría el hook wp_enqueue_scripts
y wp_dequeue_script()
en lugar de wp_deregister_script()

@swissspidy wp_dequeue_script( 'wp-embed' );
no funcionará - ¿podrías hacer una prueba? La recomendación del hook es válida.

Usar esto no pasará el themecheck.

Buen artículo en Kinsta que usa filtros para eliminar el script. https://kinsta.com/knowledgebase/disable-embeds-wordpress/

Llegué a este hilo con la misma pregunta: ¿Qué hace el archivo wp-embed.min.js? Ninguna de las respuestas actuales aborda esta pregunta con precisión.
En primer lugar, estoy bastante seguro de que embed.min.js no está relacionado con la incrustación de contenido oEmbed de otros proveedores: Vimeo, YouTube, etc. Puedes eliminar embed.min.js y esas incrustaciones seguirán funcionando.
Está relacionado específicamente con la incrustación de publicaciones de WordPress de otros blogs/sitios web. ¡Incrustar publicaciones de WordPress dentro de publicaciones de WordPress: tan meta! Esta función se introdujo en WordPress 4.4.
Deshabilitar embed.min.js hará que esta función deje de funcionar en tu sitio.
Puedes probarlo fácilmente: pega la URL de la publicación de WordPress de otra persona en una de tus propias publicaciones. WordPress debería convertir esa URL en un widget incrustado. Cuando veas tu publicación en el front-end, notarás que tu marcado contiene un blockquote y un iframe. El blockquote es un enlace solo de texto a la publicación del blog que incrustaste, mientras que la fuente del iFrame es la URL de la publicación del blog con /embed/
añadido: su punto final oEmbed.
embed.min.js oculta el blockquote y muestra el iframe. También hace algunas otras cosas para que el iframe funcione correctamente.
Ahora, intenta eliminar el script embed.min.js de tu página usando uno de los métodos descritos en las otras respuestas. Recarga tu página y notarás que el blockquote es visible pero el iframe está oculto.
En resumen: si quieres incrustar publicaciones de WordPress de otras personas en tus propias publicaciones de WordPress, deja embed.min.js como está. Si no te importa esta función, puedes eliminarlo de forma segura.

Ten en cuenta que eliminar embed.js
no es suficiente para deshabilitar correctamente los embeds y puede incluso causar comportamientos extraños si no se hace adecuadamente. Para desactivar completamente estos embeds, utiliza el plugin oficialmente recomendado Disable Embeds.

Increíble cómo WordPress añade bloat inútil con cada versión y tema oficial.

La respuesta de Trix no funcionó para mí en WordPress 4.4.1
, pero encontré una solución en el código del plugin de WordPress Deshabilitar Embeds. Agrega este código (modificado) en el archivo functions.php
de tu tema para eliminar completamente el archivo wp-embed.min.js
del frontend:
add_action( 'init', function() {
// Eliminar el endpoint de la API REST.
remove_action('rest_api_init', 'wp_oembed_register_route');
// Desactivar el descubrimiento automático de oEmbed.
// No filtrar los resultados de oEmbed.
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
// Eliminar los enlaces de descubrimiento de oEmbed.
remove_action('wp_head', 'wp_oembed_add_discovery_links');
// Eliminar el JavaScript específico de oEmbed del frontend y backend.
remove_action('wp_head', 'wp_oembed_add_host_js');
}, PHP_INT_MAX - 1 );

Usar disable_embeds_init()
como nombre de función es una muy mala idea. Si algún día instalas el plugin Disable Embeds, el cielo se caerá. Te recomiendo que simplemente instales el plugin, no hay beneficio en agregar esto al archivo functions.php de tu tema. Si insistes en hacerlo, deberías usar otro nombre de función.

Gracias por la sugerencia @swissspidy, he actualizado el nombre de la función

Ten en cuenta que esto no solo eliminará el JS del frontend/backend, también desactivará completamente la capacidad de incrustar tus publicaciones en otro sitio, WP Oembed no funcionará

El artículo en Kinsta explica este método de usar filtros para eliminarlo https://kinsta.com/knowledgebase/disable-embeds-wordpress/

Creo que esta parte aún 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 el seguimiento. https://core.trac.wordpress.org/changeset/35708
Embeds: Elimina los caracteres & del JS de embed en línea.
Versiones antiguas de WordPress convertirán esos caracteres & a &, lo que genera JS no funcional. Si las personas están ejecutando una versión antigua, no hagamos sus vidas más difíciles de lo que ya son.
También intentará detectar el agente de usuario.

Agosto 2022 - WordPress 6.0.1
Otros ya han respondido a la duda del OP.
Yo solo voy a profundizar un poco más sobre wp-embed
¿Qué hace el archivo wp-embed.min.js?
En resumen, mejora el aspecto de tus enlaces
Añade un bloque que muestra contenido extraído de otros sitios, como Twitter o YouTube.
Bloque de WordPress
Ejemplo
Con wp-embed
Sin wp-embed
Si desactivas wp-embed
en las funciones, así se verá en el front end.
¿Cómo puedo deshacerme de él?
Algo que debes saber es que este script se ubica en tu footer
<script type='text/javascript' src='http://TUSITIO/wp-includes/js/wp-embed.min.js?ver=6.0.1' id='wp-embed-js'></script>
Así que tienes dos opciones. Una es usar wp_enqueue_scripts
y otra es usar wp_footer
.
Usando wp_enqueue_scripts
function deregister_style_scripts() {
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_enqueue_scripts', 'deregister_style_scripts', 100 );
Usando wp_footer
function deregister_style_scripts() {
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'deregister_style_scripts' );
Cómo incrustar el enlace
Usa el bloque Insertar
¿La inserción no funciona?
Esto suele pasar cuando no permiten incrustar su contenido en otros sitios. Esto se controla mediante X-Frame-Options
, hay dos directivas DENY
y SAMEORIGIN
Conexión rechazada
x-frame-options: DENY
Lo sentimos, este contenido no se puede incrustar.
x-frame-options: SAMEORIGIN
Lee más
Sobre Inserciones: https://wordpress.org/support/article/embeds/
x-Frame-Options: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
