it-swarm.com.de

YouTube oEmbed und Privacy-Enhanced-Modus

Wenn Sie ein YouTube-Video in einen Iframe einbetten, können Sie den erweiterten Datenschutzmodus aktivieren, sodass YouTube keine Informationen über Ihre Webseitenbesucher speichert, bis diese das Video wiedergeben.

Ich habe versucht, ein Video über oEmbed und die URL einzubetten

http://www.youtube-nocookie.com/embed/xA3tfBTvH0c

aber es hat nicht funktioniert. Gibt es eine Möglichkeit, mit oEmbed eine datenschutzfreundliche Lösung zu implementieren?


EDITIch habe diesen Vorschlag gefunden und versucht, ihn anzupassen, und er scheint zu funktionieren, aber eines ist nicht optimal. Sie können die definierte $ content_width nicht verwenden, da diese Lösung auch eine Deklaration der Höhe benötigt. Irgendwelche Ideen zu diesem Ansatz oder haben Sie eine andere?

 wp_embed_register_handler( 'ytnocookie', '#https?://www\.youtube\-nocookie\.com/embed/([a-z0-9\-_]+)#i', 'wp_embed_handler_ytnocookie' );
 wp_embed_register_handler( 'ytnormal', '#https?://www\.youtube\.com/watch\?v=([a-z0-9\-_]+)#i', 'wp_embed_handler_ytnocookie' );
 wp_embed_register_handler( 'ytnormal2', '#https?://www\.youtube\.com/watch\?feature=player_embedded&v=([a-z0-9\-_]+)#i', 'wp_embed_handler_ytnocookie' );

 function wp_embed_handler_ytnocookie( $matches, $attr, $url, $rawattr ) {
   global $defaultoptions;
   $defaultoptions['yt-content-width'] = '680';
   $defaultoptions['yt-content-height'] = '510';
   $defaultoptions['yt-norel'] = 1;
   $relvideo = '';
   if ($defaultoptions['yt-norel']==1) {
       $relvideo = '?rel=0';
   }
   $embed = sprintf(
     '<iframe src="https://www.youtube-nocookie.com/embed/%2$s%5$s" width="%3$spx" height="%4$spx" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe><p><a href="https://www.youtube.com/watch?v=%2$s" title="View video on YouTube">View video on YouTube</a></p>',
      get_template_directory_uri(),
      esc_attr($matches[1]),
      $defaultoptions['yt-content-width'],
      $defaultoptions['yt-content-height'],
      $relvideo
   );
   return apply_filters( 'embed_ytnocookie', $embed, $matches, $attr, $url, $rawattr );
 }
4
John

Momentan erkennt WordPress nur youtube.com/watch, youtube.com/playlist und youtu.be. Es gibt jedoch wp_oembed_add_provider ; versuchen Sie etwas wie

wp_oembed_add_provider(
    '#http://(www\.)?youtube-nocookie\.com/embed.*#i',
    'http://www.youtube-nocookie.com/oembed', true );

(ungetestet sorry). Sie können sogar die vorhandenen Anbieter überschreiben, um zu -nocookie umzuleiten, und dann den Video-Shortcode wie gewohnt verwenden. Und Sie können dies auch mit add_filter('oembed_providers', ... ); tun, wenn Sie es vorziehen.

1
Rup