Hallo @angus, ich habe unten Neuigkeiten von EDD:
Ich habe das Problem im WP Discourse-Plugin identifiziert und hoffe, dass du es an die Entwickler weiterleiten kannst.
Das Problem befindet sich in dieser Datei:
lib/discourse-comment.php
Genauer gesagt in diesem Filter:
add_filter( ‘wp_kses_allowed_html’, array( $this, ‘extend_allowed_html’ ), 10, 2 );
Standardmäßig enthält das Array, das sie filtern, Folgendes:
array (
‘align’ => true,
‘dir’ => true,
‘lang’ => true,
‘xml:lang’ => true,
‘aria-describedby’ => true,
‘aria-details’ => true,
‘aria-label’ => true,
‘aria-labelledby’ => true,
‘aria-hidden’ => true,
‘class’ => true,
‘id’ => true,
‘style’ => true,
‘title’ => true,
‘role’ => true,
‘data-*’ => true,
)
Besonders hervorzuheben ist das letzte Element: ‘data-*’
Das WP Discourse-Plugin filtert dies, um ihr Attribut data-youtube-id hinzuzufügen. Dabei setzen sie jedoch unbeabsichtigt das data-*-Attribut zurück. Das bedeutet, dass alle anderen Datenattribute unter wp_kses_post() nicht mehr funktionieren. Dies verursacht ein Problem mit unserem PayPal-Code.
Um es klarzustellen: WP Discourse trennt dich nicht von PayPal; es beschädigt lediglich den Code, der prüft, ob du verbunden bist. Das liegt daran, dass wir in unserem Markup ein Datenattribut verwenden, das der Filter in WP Discourse entfernt.
Meine Empfehlung an die Entwickler wäre, das Array $allowedposttags[‘div’] zu erweitern, anstatt es zu überschreiben.
Anstatt Folgendes:
$allowedposttags[‘div’] = array(
‘class’ => true,
‘id’ => true,
‘style’ => true,
‘title’ => true,
‘role’ => true,
‘data-youtube-id’ => array(),
);
Können sie Folgendes tun:
$allowedposttags[‘div’][‘data-youtube-id’] = array();
Das löst das Problem und sollte sicherstellen, dass ihre Funktionalität unverändert bleibt.