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

14 dic 2015, 00:59:01
Visualizzazioni: 72K
Voti: 67

Domanda

  1. Cosa fa il file wp-embed.min.js? Ho notato che viene aggiunto alla fine del footer della mia pagina blog.
  2. Come posso eliminarlo?

Tentativo

Dopo alcune ricerche su Google ho trovato Embeds nel Codex. Perché WordPress presume che io voglia aggiungere video, ecc. alla mia pagina per impostazione predefinita?

Ambiente

WordPress 4.4

4
Commenti

Probabilmente è relativo a wp come server oEmbed e non come client

Mark Kaplun Mark Kaplun
14 dic 2015 07:25:29

Ho provato ad aggiungere la risposta alla prima parte della domanda

prosti prosti
28 nov 2016 21:06:47

Sono abbastanza sicuro che sia lì solo per rallentare la tua pagina.

vhs vhs
17 apr 2017 22:36:59

@MarkKaplun ha ragione. wp-embed.min.js permette di incorporare post da siti WordPress remoti nel proprio sito WordPress, tramite oEmbed.

Jonathan Nicol Jonathan Nicol
15 nov 2017 04:47:42
Tutte le risposte alla domanda 5
7
82

Cos'è?

È responsabile della conversione dei link in frame incorporati.

Ad esempio, puoi incollare un link di un video YouTube nella sezione del contenuto dell'editor e l'embed di YouTube verrà generato automaticamente quando la tua pagina verrà visualizzata.

Maggiori informazioni sulla Documentazione di WordPress

Come sbarazzarsene?

Finalmente sono riuscito a eliminarlo utilizzando questo codice:

function my_deregister_scripts(){
  // Deregistra lo script wp-embed
  wp_deregister_script( 'wp-embed' );
}
// Aggiunge l'azione al footer
add_action( 'wp_footer', 'my_deregister_scripts' );
14 dic 2015 01:40:55
Commenti

Aggiungerlo all'azione "wp_enqueue_scripts", sembra funzionare anche.

andershagbard andershagbard
13 gen 2016 18:09:27

Sì, userei l'hook wp_enqueue_scripts e wp_dequeue_script() invece di wp_deregister_script()

swissspidy swissspidy
17 gen 2016 22:06:07

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

Aziz Aziz
6 mag 2016 01:38:25

In WordPress 4.6 lo script @Trix funziona correttamente. Grazie!

Sebastian Sebastian
6 set 2016 12:07:25

Usando questo non supererà il controllo di themecheck.

lowtechsun lowtechsun
12 giu 2017 13:28:28

Buon articolo su Kinsta che utilizza filtri per rimuovere lo script. https://kinsta.com/knowledgebase/disable-embeds-wordpress/

Andrew Schultz Andrew Schultz
30 ago 2019 16:47:08

Non hai risposto alla tua domanda...

Slbox Slbox
22 feb 2020 23:05:30
Mostra i restanti 2 commenti
4
35

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

Innanzitutto, sono abbastanza sicuro che embed.min.js non sia correlato all'incorporamento di contenuti oEmbed da altri provider come Vimeo, YouTube ecc. Puoi rimuovere embed.min.js e quegli embed continueranno a funzionare.

Si riferisce specificamente all'incorporamento di post WordPress da altri blog/siti web. Incorporare post WordPress all'interno di altri post WordPress: che meta! Questa funzionalità è stata introdotta in WordPress 4.4.

Disabilitare embed.min.js impedirà il funzionamento di questa funzionalità sul tuo sito.

Puoi testarlo facilmente: incolla l'URL di un post WordPress di qualcun altro in uno dei tuoi post. WP dovrebbe convertire quell'URL in un widget incorporato. Quando visualizzi il tuo post in front-end noterai che il tuo markup contiene un blockquote e un iframe. Il blockquote è un link testuale al post del blog che hai incorporato, mentre la sorgente dell'iFrame è l'URL del post del blog con /embed/ aggiunto: il suo endpoint oEmbed.

embed.min.js nasconde il blockquote e mostra l'iframe. Fa anche altre magie per far funzionare bene l'iframe.

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

In breve: se vuoi incorporare post WordPress di altre persone nei tuoi post WordPress, lascia stare embed.min.js. Se questa funzionalità non ti interessa, puoi rimuoverlo in tutta sicurezza.

15 nov 2017 04:18:31
Commenti

Nota che rimuovere embed.js non è sufficiente per disabilitare correttamente gli embed e potrebbe persino causare comportamenti strani se non fatto nel modo giusto. Per disabilitare completamente questi embed, utilizza il plugin ufficialmente consigliato Disable Embeds.

swissspidy swissspidy
22 gen 2018 16:09:53

Funziona come previsto e spiegato anche in WordPress 5.x.

inrsaurabh inrsaurabh
9 mar 2019 14:30:29

Incredibile come wp aggiunga inutili appesantimenti con ogni singola versione e tema ufficiale.

Michael Rogers Michael Rogers
20 lug 2020 23:49:13

@swissspidychi lo raccomanda? Sembra abbandonato.

Michael Rogers Michael Rogers
20 lug 2020 23:50:23
4

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

add_action( 'init', function() {

    // Rimuove l'endpoint REST API.
    remove_action('rest_api_init', 'wp_oembed_register_route');

    // Disabilita l'auto-discovery di oEmbed.
    // Non filtra i risultati di oEmbed.
    remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);

    // Rimuove i link di discovery per oEmbed.
    remove_action('wp_head', 'wp_oembed_add_discovery_links');

    // Rimuove il JavaScript specifico di oEmbed dal frontend e backend.
    remove_action('wp_head', 'wp_oembed_add_host_js');
}, PHP_INT_MAX - 1 );
12 gen 2016 11:08:18
Commenti

Usare disable_embeds_init() come nome della funzione è una pessima idea. Se un giorno installerai il plugin Disable Embeds, il cielo cadrà. Ti consiglio di installare semplicemente il plugin, non c'è alcun vantaggio nell'aggiungere questo al file functions.php del tuo tema. Se insisti nel farlo, dovresti davvero usare un altro nome per la funzione.

swissspidy swissspidy
17 gen 2016 22:08:15

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

Nadeem Khan Nadeem Khan
18 gen 2016 13:59:57

Nota che questo non rimuoverà solo il JS dal frontend/backend, ma disabiliterà completamente la possibilità di incorporare i tuoi post su un altro sito, WP Oembed non funzionerà

Tom J Nowell Tom J Nowell
4 nov 2016 21:37:06

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

Andrew Schultz Andrew Schultz
30 ago 2019 16:47:45
1

Penso che questa parte manchi ancora.

Cosa fa il file wp-embed.min.js? Ho notato che viene aggiunto alla fine del footer della mia pagina del blog.

La risposta a questa domanda si trova nel tracciato. https://core.trac.wordpress.org/changeset/35708

Embed: Rimuovi i caratteri & dall'embed JS inline.

Le versioni più vecchie di WordPress convertiranno quei caratteri & in &, il che rende il JS non funzionante. Se le persone stanno utilizzando una versione precedente, non rendiamo la loro vita più difficile di quanto già non sia.

Cercherà anche di individuare lo user agent.

28 nov 2016 21:06:03
Commenti

Il testo che hai citato ("Rimuovi i caratteri & dall'embed JS inline" 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ù chiarezza.

Jonathan Nicol Jonathan Nicol
15 nov 2017 04:23:58
0

Agosto 2022 - WordPress 6.0.1

Altri hanno già risposto ai dubbi dell'OP.
Io fornirò maggiori dettagli su wp-embed

Cosa fa il file wp-embed.min.js?

In breve, rende i tuoi link più gradevoli

Aggiunge un blocco che mostra contenuti estratti da altri siti, come Twitter o YouTube.
Blocco WordPress

Esempio

Con wp-embed

Esempio con wp-embed

Senza wp-embed

Se disattivi wp-embed nelle funzioni, ecco come appare nel front end. Esempio senza wp-embed

Come posso rimuoverlo?

È importante sapere che questo script si trova nel footer

<script type='text/javascript' src='http://YOURSITE/wp-includes/js/wp-embed.min.js?ver=6.0.1' id='wp-embed-js'></script>

Quindi hai due opzioni. Una è usare wp_enqueue_scripts e l'altra è usare 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' );

Come incorporare il link

Usa il blocco Embed

Blocco Embed

L'embed non funziona?

Questo di solito accade quando il sito non vuole che il suo contenuto venga incorporato nel tuo sito o all'esterno. Questo può essere controllato tramite X-Frame-Options, ci sono due direttive DENY e SAMEORIGIN

Connessione rifiutata

x-frame-options: DENY

Errore con DENY

Spiacenti, questo contenuto non può essere incorporato.

x-frame-options: SAMEORIGIN

Errore con SAMEORIGIN

Per saperne di più

Informazioni sugli Embed: https://wordpress.org/support/article/embeds/
x-Frame-Options: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

8 ago 2022 19:33:52