Cosa fa wp-embed.min.js in WordPress 4.4?


52

Domanda

  1. Cosa fa il wp-embed.min.jsfile? Ho notato che è stato aggiunto alla fine del piè di pagina del mio blog.
  2. Come posso liberarmene?

Sforzo

Dopo aver cercato su Google e ho trovato Incorpora nel Codice. Perché WordPress pensa di voler aggiungere video, ecc. Alla mia pagina per impostazione predefinita?

Ambiente

WordPress 4.4


1
Questo è probabilmente correlato a wp come server oEmbed e non come client
Mark Kaplun,

Ho provato ad aggiungere la risposta alla prima parte della domanda
prosti,

11
Abbastanza sicuro che è lì solo per rallentare la tua pagina.
Josh Habdas,

@MarkKaplun è corretto. wp-embed.min.js ti consente di incorporare post da siti WordPress remoti nel tuo sito WordPress, tramite oEmbed.
Jonathan Nicol,

Risposte:


61

Potrei finalmente liberarmene usando questo:

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

4
Anche aggiungerlo all'azione "wp_enqueue_scripts" sembra funzionare.
Andershagbard,

7
Sì, wp_enqueue_scriptswp_dequeue_script()wp_deregister_script()
userei

@swissspidy wp_dequeue_script( 'wp-embed' );non funzionerà - puoi eseguire un test, per favore? La raccomandazione sulla cappa è valida.
Aziz,

Sotto WordPress 4.6 lo script @Trix funziona bene. Grazie!
Sebastian,

1
Usando questo non passerai loro il controllo .
lowtechsun,

20

Sono arrivato a questo thread con la stessa domanda: cosa fa il file wp-embed.min.js? Nessuna delle risposte attuali affronta con precisione questa domanda.

In primo luogo, sono abbastanza certo che embed.min.js non si riferisce all'incorporazione di contenuti oEmbed da altri fornitori: Vimeo, YouTube ecc. È possibile rimuovere embed.min.js e tali incorporamenti continueranno a funzionare.

Si riferisce specificamente all'incorporazione di post di WordPress dai blog / siti Web di altre persone. Incorporare post di WordPress nei post di WordPress: così meta! Questa funzione è stata introdotta in WordPress 4.4 .

La disabilitazione di embed.min.js interromperà tale funzionalità sul tuo sito.

Puoi testarlo facilmente: incolla l'URL del post di WordPress di qualcun altro in uno dei tuoi post. WP dovrebbe convertire quell'URL in un widget incorporato. Quando visualizzi il tuo post sul front-end, noterai che il tuo markup contiene una quotazione in blocco e un iframe. Il blockquote è un collegamento di solo testo al post sul blog che hai incorporato, mentre la fonte di iFrame è l'URL del post sul blog con l' /embed/aggiunta: il suo endpoint oEmbed.

embed.min.js nasconde la blockquote e rivela l'iframe. Fa anche altri shenanigans per rendere piacevole l'iframe.

Ora prova a rimuovere lo script embed.min.js dalla tua pagina utilizzando uno dei metodi descritti nelle altre risposte. Ricarica la tua pagina e noterai che il blockquote è visibile ma l'iframe è nascosto.

In breve: se desideri incorporare i post di WordPress di altre persone nei tuoi post di WordPress, lascia solo embed.min.js. Se non ti interessa questa funzione, puoi rimuoverla in sicurezza.


3
Si noti che la rimozione embed.jsnon è sufficiente per disabilitare correttamente gli incorporamenti e potrebbe persino portare a comportamenti strani se non eseguita correttamente. Per disabilitare completamente questi incorporamenti, utilizzare il plug-in Disabilita incorporamenti raccomandato ufficialmente .
swissspidy,

Funziona come previsto e spiegato anche in Word-Press 5.x.
Inrsaurabh

8

La risposta di Trix non ha funzionato per me su WordPress 4.4.1, ma ho trovato una soluzione nel codice del plug-in Disable Embeds WordPress. Aggiungi questo codice (modificato) nel functions.phpfile del tuo tema per rimuovere completamente il wp-embed.min.jsfile dal frontend:

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 );

3
Usare disable_embeds_init()come nome della funzione è una pessima idea. Se un giorno installerai il plug-in Disable Embeds, sky cadrà. Ti consiglio di installare semplicemente il plugin, non c'è alcun vantaggio nell'aggiungerlo al file Functions.php del tuo tema. Se insisti nel farlo, dovresti davvero usare un altro nome di funzione.
swissspidy,

Grazie per il suggerimento @swissspidy, ho aggiornato il nome della funzione
Nadeem Khan,

2
Nota che questo non rimuoverà semplicemente JS dal frontend / backend, ma disabiliterà anche completamente la possibilità di incorporare i tuoi post su un altro sito, WP Oembed non funzionerà
Tom J Nowell

L'articolo su Kinsta approfondisce questo metodo di utilizzo dei filtri per rimuoverlo kinsta.com/knowledgebase/disable-embeds-wordpress
Andrew Schultz,

4

Penso che questa parte manchi ancora.

Che cosa fa il file wp-embed.min.js? Ho notato che è stato aggiunto alla fine del piè di pagina del mio blog.

La risposta a questa domanda è nella traccia. https://core.trac.wordpress.org/changeset/35708

Incorpora: rimuove e caratteri dall'incorporato incorporato JS.

Le versioni precedenti di WordPress convertiranno quei caratteri e in &, il che rende alcuni JS non funzionali. Se la gente ha una versione precedente, non rendiamo la sua vita più difficile di quanto non lo sia già.

Tenterà inoltre di annusare l'agente utente.


2
Il testo che hai citato ("Rimuovi e caratteri dall'incorporato in linea JS" ecc.). è un singolo messaggio di commit per il file, ma non descrive lo scopo generale dello script. Ho fornito la mia risposta, che spero faccia più luce.
Jonathan Nicol,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.