WordPress Twenty Seventeen – Header Video EU-DSGVO konform nutzen

Worpress
Die Einführung der neuen EU-weiten Datenschutzgrundverordnung (EU-DSGVO oder GDPR) hat die WordPress-Gemeinde ja hinreichend intensiv beschäftigt. Auch ich habe an der Webseite zu meinem Science-Fiction Thriller Der Kristall einige Änderungen vornehmen müssen. Die Grundlagen dazu und einige Tipps und Tricks habe ich seinerzeit in einem Artikel auf dieser Seite geteilt.

Eine kleine Schwachstelle war aber noch übrig geblieben – eine Funktion, auf die ich jedoch nicht verzichten wollte. Meine Webseite basiert auf einem ziemlich stark modifizierten Twenty Seventeen Theme, das ja von Haus aus die Möglichkeit bietet, die seit WordPress 4.7 verfügbare Darstellung von Videos im Header zu nutzen. Daher habe ich auch ein zum Thema des Buchs passendes Video – eine Collage der schönsten Hubble Aufnahmen und einiger Computer-Animationen unseres Universums – im Header genutzt. Das Video ist aufgrund der Größe (> 150 MB) auf YouTube gehostet und wird auch mit einem YT-Player von WordPress gestreamt. Und genau da liegt das Problem im Zusammenhang mit der EU-DSGVO, denn natürlich sammelt der YT-Player fröhlich Daten ein und setzt sogar ein AdSense-Cookie.
Also habe ich mich entschlossen, die Aktivierung des Videos an die Einwilligung der Datenschutzerklärung zu knüpfen, die der Nutzer durch Akzeptieren des Cookie-Hinweises gibt. Allerdings ist das nicht ganz so einfach. Die kurze Anleitung zu den Header Videos auf wordpress.org erwähnt keinen expliziten Filter, um das Ausspielen eines Videos zu deaktivieren. Außerdem nutzt meine Seite einen HTML-Cache, also fällt eine PHP-basierte Lösung sowieso aus. Allerdings muss eine Möglichkeit existieren, denn WordPress selber deaktiviert das Video abhängig von der Bildschirmgröße, um auf Smartphones nicht das Volumen-Guthaben des Nutzers aufzufressen. Einen Hinweis fand ich dann doch im obigen Artikel, die Javascript-Funktion supportsVideo des customHeader Objekts.

Und so sieht die Lösung aus:

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
 
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
 
    return "";
}
 
if (wp.customHeader != undefined) {
    var supportsVideo = wp.customHeader.supportsVideo;
 
    wp.customHeader.supportsVideo = function() {
        return supportsVideo() &&
            (getCookie('cookie_notice_accepted') == 'false');
    }
}

 
Die Funktion supportsVideo wird überschrieben und prüft nun zusätzlich noch, ob der Nutzer den Cookie-Hinweis akzeptiert hat, was in meinem Fall durch den Wert false dargestellt wird. Wichtig ist, dass die Webseite nach Schließen des Cookie-Hinweises neu geladen wird, was aber die meisten Cookie-Plugins auch unterstützen.
Das obige Javascript muss man nun noch geeignet in den Webseiten-Code eingebunden werden. Da ich natürlich ein Child Theme von Twenty Seventeen nutze, ist die functions.php-Datei die beste Option:

function synth_yt_gdpr_script() {
    if ( is_home() || is_front_page() ) {
        wp_register_script("yt-gdpr-compliance", "https://der-kristall.de/wp-content/themes/der-kristall/assets/js/yt-gdpr-compliance.js", array("wp-custom-header"));
        wp_enqueue_script("yt-gdpr-compliance");
    }
}
 
add_action('wp_enqueue_scripts', 'synth_yt_gdpr_script');

 


Das war’s. Verpasst auch nicht meine anderen Artikel rund um WordPress.

Like
Like Love Haha Wow Sad Angry

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.