Automatisches blockieren von Iframe-Inhalten

Automatisches blockieren von Iframe-Inhalten

Du bist hier:
Geschätzte Lesezeit: 1 min

Borlabs Cookie nutzt den WordPress Hook the_content um im Beitragstext nach blockbaren Iframes zu suchen. Dabei wählt es in der Prioritätenfolge die Position 100 (Standardwert ist 10), damit etwaige andere Plugins vorher ihre Modifizierung am Inhalt des Beitrags vornehmen können.

Des Weiteren nutzt es die Hooks acf/format_value/type=oembed und acf/format_value/type=textarea von Advanced Custom Fields (ACF).

Nur wenn an diesen Stellen ein iframe-Tag gefunden wird, kann es blockiert werden. Die Erkennung funktioniert nicht, wenn das iframe im Browser durch JavaScript "gebaut" wird oder in machen (Video-)Widgets von PageBuildern (WPBakery, Elementor, Fusion, etc.). Es gibt zudem Themes (z.B. Sitebox) die nach URLs wie z.B. von YouTube suchen, diese aus dem Beitragstext extrahieren und innerhalb einer Template-Datei dann das iframe-Tag außerhalb des Beitrags setzen. Auch hier kann Borlabs Cookie das Iframe nicht blockieren.

Folgende Möglichkeiten funktionieren in den meisten Fällen:

  1. Verwendung des Shortcodes [borlabs_cookie_blocked_content title="Titel"] zu blockender Inhalt [/borlabs_cookie_blocked_content]
  2. Verwendung von add_filter oder direkte Übergabe der Variable an Borlabs Cookie

Shortcode verwenden

[borlabs_cookie_blocked_content title="EIN BILD"]<p>Es hat geklappt!</p><img class="aligncenter size-full wp-image-2233" src="https://de.borlabs.io/wp-content/uploads/sites/2/2018/02/knowledge-borlabs-cookie.png" alt="" width="256" height="256" />[/borlabs_cookie_blocked_content]

Ergebnis:

Wenn die Shortcodes via Copy&Paste in WordPress eingefügt werden, muss darauf geachtet werden, dass die Anführungszeichen " nicht durch oder ersetzt werden.

Borlabs Cookie IframeDetection - PHP Beispiel

// Methode A
$deinInhalt = \BorlabsCookie\Cookie\Frontend\ContentBlocker::getInstance()->detectIframes($deinInhalt);

// Methode B
add_filter('deinFilter', [\BorlabsCookie\Cookie\Frontend\ContentBlocker::getInstance(), 'detectIframes'], 100, 1);
In seltenen Fällen ist keine Blockierung möglich, z.B. wenn geblockte Inhalte von einem in der Seite integrierten JavaScript erwartet werden und dieses keine Abfrage hat, ob das Element vorhanden ist.

Iframe von der Blockierung ausschließen

Wenn du einen speziellen iframe nicht blockieren möchtest, kannst du dazu das Attribut data-borlabs-cookie-iframe-spared setzen.

Beispiel:

<iframe data-borlabs-cookie-iframe-spared width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://meinewebsite.com/wetterwidget"></iframe>
War der Artikel hilfreich?
Nicht hilfreich 11
Aufrufe: 1368