WordPress 4.4でwp-embed.min.jsは何をしますか?


52

質問

  1. wp-embed.min.jsファイルは何をしますか?ブログのページフッターの最後に追加されていることに気付きました。
  2. どうすればそれを取り除くことができますか?

努力

いくつかのグーグル検索の後、CodexにEmbedsを見つけました。WordPressがデフォルトで自分のページに動画などを追加したいと思うのはなぜですか?

環境

WordPress 4.4


1
これは、のoEmbedサーバとしてWPに関連probabliではなく、クライアントである
マークKaplun

質問の最初の部分に答えを追加しようとしました
-prosti

11
ページの速度を落とすためだけにあることを確認してください。
ジョシュハブダス

@MarkKaplunは正しいです。wp-embed.min.jsを使用すると、oEmbedを介して、リモートWordPressサイトから自分のWordPressサイトに投稿を埋め込むことができます。
ジョナサンニコル

回答:


61

私は最終的にこれを使用してそれを取り除くことができました:

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

4
アクション「wp_enqueue_scripts」に追加することも機能しているようです。
andershagbard

7
はい、代わりにwp_enqueue_scriptsフックを使用しますwp_dequeue_script()wp_deregister_script()
-swissspidy

@swissspidy wp_dequeue_script( 'wp-embed' );は機能しません。テストを実行してください。フードの推奨事項は有効です。
アジズ

WordPress 4.6では、@ Trixスクリプトは正常に機能します。ありがとうございました!
セバスチャン

1
これを使用すると、themecheckをパスしません
lowtechsun

20

同じ質問でこのスレッドに到達しました:wp-embed.min.jsファイルは何をしますか?現在の回答では、この質問に正確に答えているものはありません。

まず、embed.min.jsは、他のプロバイダー(Vimeo、YouTubeなど)からのoEmbedコンテンツの埋め込みとは関係がないことを確信しています。embed.min.jsを削除しても、これらの埋め込みは引き続き機能します。

他の人のブログ/ウェブサイトからのWordPress投稿の埋め込みに特に関連してい ます。WordPress投稿にWordPress投稿を埋め込む:so meta!この機能はWordPress 4.4で導入されました

embed.min.jsを無効にすると、その機能がサイトで機能しなくなります。

これは簡単にテストできます。他の誰かのWordPress投稿のURLを自分の投稿の1つに貼り付けます。WPはそのURLを埋め込みウィジェットに変換する必要があります。フロントエンドで投稿を表示すると、マークアップにblockquoteとiframeが含まれていることがわかります。blockquoteは、埋め込まれたブログ投稿へのテキストのみのリンクであり、iFrameのソースは、ブログ投稿のURLに/embed/oEmbedエンドポイントが追加されたものです。

embed.min.jsはblockquoteを非表示にし、iframeを公開します。また、iframeを快適にプレイするために、他のいくつかの方法も実行します。

次に、他の回答で説明されている方法のいずれかを使用して、ページからembed.min.jsスクリプトを削除してみてください。ページをリロードすると、blockquoteは表示されますが、iframeは非表示になります。

つまり、他の人のWordPress投稿を自分のWordPress投稿に埋め込みたい場合は、embed.min.jsをそのままにしておきます。この機能を気にしない場合は、安全に削除できます。


3
削除embed.jsは埋め込みを適切に無効にするのに十分ではないことに注意してください。これらの埋め込みを完全に無効にするには、公式に推奨されている[ 埋め込みを無効にする]プラグインを使用します。
swissspidy

期待どおりに動作し、ワードプレス5.xでも説明されています。
inrsaurabh

8

Trixの答えはWordPress 4.4.1ではうまくいきませんでしたが、Disable Embeds WordPressプラグインのコードで解決策を見つけました。テーマのfunctions.phpファイルに次のコード(変更済み)を追加wp-embed.min.jsして、フロントエンドからファイルを完全に削除します。

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
disable_embeds_init()関数名として使用するのは本当に悪い考えです。Disable Embedsプラグインをいつかインストールしようとすると、空が落ちます。プラグインをインストールすることをお勧めします。これをテーマのfunctions.phpファイルに追加してもメリットはありません。そうすることを主張する場合、実際には別の関数名を使用する必要があります。
swissspidy

@swissspidyの提案をありがとう、関数の名前を更新しました
カーン

2
これにより、フロントエンド/バックエンドからJSが削除されるだけでなく、別のサイトに投稿を埋め込む機能も完全に無効になります。WPOembedは機能しません
トムJノウェル

Kinstaに関する記事では、フィルターを使用して削除するこの方法について詳しく説明しています。kinsta.com/knowledgebase/disable
Andrew Schultz

4

この部分はまだ欠けていると思います。

wp-embed.min.jsファイルは何をしますか?ブログのページフッターの最後に追加されていることに気付きました。

この質問に対する答えはトラックにあります。 https://core.trac.wordpress.org/changeset/35708

埋め込み:インライン埋め込みJSから&文字を削除します。

古いバージョンのWordPressはこれらの&文字を&に変換するため、一部の機能しないJSが作成されます。人々が古いリリースを実行している場合、彼らの生活をこれまでよりも難しくしないようにしましょう。

また、ユーザーエージェントを探知しようとします。


2
引用したテキスト(「インライン埋め込みJSから文字を削除&」など)。ファイルに対する単一のコミットメッセージですが、スクリプトの全体的な目的については説明しません。私は自分の答えを提供しました。
ジョナサンニコル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.