デフォルトでは、ポスト/ページの中に別のWP urlを入れると、それをオーバーエンディングして、フロントエンドにデフォルトを持つブロッククォートとiframeコードを生成します。
<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" ....></iframe>
また、JSコンソールXMLHttpRequest cannot load http://example.com/wp-content/themes/themename/js/test.js. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
でエラーが発生するため、一部のスクリプトの実行がブロックされていることを示唆しています。
フロントエンドで生成されたiframeを変更するために使用するのに最適なフィルタは何ですか。たとえば、sandbox
のallow-same-Origin
属性にします。
<iframe class="wp-embedded-content" sandbox="allow-scripts allow-same-Origin" security="restricted" ....></iframe>
私はこのスニペットを使用してCORSの問題を解決することができました。これにより、このiFrameはallow-same-Origin
を実行できるようになり、このドメイン内でスクリプトを実行できます。
function oembed_iframe_overrides($html, $url, $attr) {
if ( strpos( $html, "<iframe" ) !== false ) {
return str_replace('<iframe class="wp-embedded-content" sandbox="allow-scripts allow-same-Origin"', '<iframe class="wp-embedded-content" sandbox', $html); }
else {
return $html;
}
}
add_filter( 'embed_oembed_html', 'oembed_iframe_overrides', 10, 3);