Cosa fa wp-embed.min.js in WordPress 4.4?
Domanda
- Cosa fa il file
wp-embed.min.js
? Ho notato che viene aggiunto alla fine del footer della mia pagina blog. - 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

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

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

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

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

Usando questo non supererà il controllo di themecheck.

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

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.

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.

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

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

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.

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

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à

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

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.

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
Senza wp-embed
Se disattivi wp-embed
nelle funzioni, ecco come appare nel front end.
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
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
Spiacenti, questo contenuto non può essere incorporato.
x-frame-options: 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
