Que fait wp-embed.min.js dans WordPress 4.4?

52

Question

  1. Que fait le wp-embed.min.jsfichier? J'ai remarqué qu'il est ajouté à la fin du bas de page de mon blog.
  2. Comment puis-je m'en débarrasser?

Effort

Après quelques recherches sur Google et j'ai trouvé Intégrations sur le Codex. Pourquoi WordPress pense-t-il que je veux ajouter des vidéos, etc. à ma page par défaut?

Environnement

WordPress 4.4

Pmpr
la source
1
Ceci est probablement lié à wp en tant que serveur oEmbed et non en tant que client
Mark Kaplun
J'ai essayé d'ajouter la réponse à la première partie de la question
prosti
11
Je suis sûr que c'est juste là pour ralentir votre page.
Josh Habdas
@MarkKaplun est correct. wp-embed.min.js vous permet d'intégrer des publications de sites WordPress distants dans votre propre site WordPress, via oEmbed.
Jonathan Nicol

Réponses:

61

Je pourrais enfin m'en débarrasser en utilisant ceci:

function my_deregister_scripts(){
  wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
Pmpr
la source
4
L'ajout de l'action "wp_enqueue_scripts" semble également fonctionner.
andershagbard
7
Oui, j'utiliserais le wp_enqueue_scriptscrochet et wp_dequeue_script()au lieu dewp_deregister_script()
swissspidy le
@swissspidy wp_dequeue_script( 'wp-embed' );ne fonctionnera pas - pouvez-vous s'il vous plaît lancer un test? La recommandation de capot est valide.
Aziz
Sous WordPress 4.6, le script @Trix fonctionne correctement. Je vous remercie!
Sébastien
1
En utilisant ceci ne passera pas le check .
lowtechsun
20

Je suis arrivé à ce fil avec la même question: que fait le fichier wp-embed.min.js? Aucune des réponses actuelles ne répond à cette question avec précision.

Premièrement, je suis à peu près certain que embed.min.js ne concerne pas l'intégration de contenu oEmbed provenant d'autres fournisseurs: Vimeo, YouTube, etc. Vous pouvez supprimer embed.min.js et ces intégrations continueront de fonctionner.

Cela concerne spécifiquement l'intégration de publications WordPress à partir de blogs / sites Web d'autres personnes. Intégrer des publications WordPress dans des publications WordPress: donc méta! Cette fonctionnalité a été introduite dans WordPress 4.4 .

La désactivation de embed.min.js empêchera cette fonctionnalité de fonctionner sur votre site.

Vous pouvez le tester facilement: Collez l’URL du message WordPress d’un autre utilisateur dans l’un de vos propres messages. WP devrait convertir cette URL en un widget intégré. Lorsque vous visualisez votre publication sur le front-end, vous remarquerez que votre balise contient une citation et un iframe. Blockquote est un lien textuel seulement vers le message de blog que vous avez intégré, tandis que la source de l'iFrame est l'URL du message de blog auquel est /embed/ajouté: son point de terminaison oEmbed.

embed.min.js cache le blockquote et révèle l'iframe. Il fait également quelques autres manigances pour que l'iframe joue bien.

Maintenant, essayez de supprimer le script embed.min.js de votre page en utilisant l’une des méthodes décrites dans les autres réponses. Rechargez votre page et vous remarquerez que la citation est visible mais que l’iframe est masqué.

En bref: si vous souhaitez intégrer les publications WordPress d'autres personnes dans vos propres publications WordPress, laissez embed.min.js seul. Si cette fonctionnalité ne vous intéresse pas, vous pouvez la supprimer en toute sécurité.

Jonathan Nicol
la source
3
Notez que la suppression embed.jsn’est pas suffisante pour désactiver correctement les systèmes intégrés et peut même entraîner un comportement étrange si elle n’est pas correctement effectuée. Pour désactiver complètement ces intégrations, utilisez le plug- in Disable Embeds officiellement recommandé .
swissspidy
Travailler comme prévu et expliqué dans Word-Press 5.x également.
inrsaurabh
8

La réponse de Trix n'a pas fonctionné pour moi sur WordPress 4.4.1, mais j'ai trouvé une solution dans le code du plugin Disable Embeds WordPress. Ajoutez ce code (modifié) dans le functions.phpfichier de votre thème pour supprimer wp-embed.min.jscomplètement le fichier de l'interface:

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
la source
3
Utiliser disable_embeds_init()comme nom de fonction est une très mauvaise idée. Si vous installez le plugin Disable Embeds un jour, le ciel tombera. Je vous recommande d'installer simplement le plugin, il n'y a aucun avantage à l'ajouter au fichier functions.php de votre thème. Si vous insistez pour cela, vous devriez vraiment utiliser un autre nom de fonction.
swissspidy
Merci pour la suggestion @swissspidy, j'ai mis à jour le nom de la fonction
Nadeem Khan
2
Notez que cela ne supprimera pas simplement le JS de l'interface, il désactivera également complètement la possibilité d'intégrer vos publications sur un autre site. WP Oembed ne fonctionnera pas.
Tom J Nowell
L'article sur Kinsta explique cette méthode d'utilisation de filtres pour le supprimer. Kinsta.com/knowledgebase/disable-embeds-wordpress
Andrew Schultz
4

Je pense que cette partie est toujours manquante.

Que fait le fichier wp-embed.min.js? J'ai remarqué qu'il est ajouté à la fin du bas de page de mon blog.

La réponse à cette question est dans la piste. https://core.trac.wordpress.org/changeset/35708

Incorporer: supprime & caractères du JS incorporé en ligne.

Les anciennes versions de WordPress convertissent ces caractères & en, ce qui rend certains JS non fonctionnels. Si les gens utilisent une version plus ancienne, ne leur rendons pas la vie plus difficile qu’elle ne l’est déjà.

Il va également essayer de renifler l'agent utilisateur.

prosti
la source
2
Le texte que vous avez cité ("Supprimer les caractères & du JS incorporé en ligne", etc.). est un message de validation unique pour le fichier, mais ne décrit pas l'objectif général du script. J'ai fourni ma propre réponse qui, espérons-le, nous éclairera davantage.
Jonathan Nicol