web-dev-qa-db-fra.com

Filtrez les balises oembeds pour modifier les attributs iframe

Par défaut, lorsqu’un autre WP url est inséré dans un article/une page, il est intégré et produit un code blockquote et iframe avec le code par défaut au début:

<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" ....></iframe>

Il génère également une erreur dans la console 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., ce qui laisse supposer qu’elle bloque l’exécution de certains scripts.

Quel est le meilleur filtre à utiliser pour modifier l’iframe produite dans le système frontal, par exemple, nous voulons qu’il ait l'attribut allow-same-Origin pour sandbox

<iframe class="wp-embedded-content" sandbox="allow-scripts allow-same-Origin" security="restricted" ....></iframe>
2
Carl Alberto

J'ai pu résoudre le problème CORS en utilisant cet extrait qui permet maintenant à cet iFrame de allow-same-Origin ou d'exécuter des scripts dans ce domaine.

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);
1
Carl Alberto