web-dev-qa-db-fra.com

YouTube oEmbed et mode amélioré de confidentialité

Lorsque vous intégrez une vidéo youtube dans une iframe, vous pouvez activer le mode optimisé pour la confidentialité, de sorte que YouTube ne stocke aucune information sur les visiteurs de votre page Web tant qu’ils ne l’ont pas visionnée.

J'ai essayé d'intégrer une vidéo via oEmbed et l'URL

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

mais ça n'a pas marché. Existe-t-il une possibilité de mettre en œuvre une solution respectueuse de la vie privée avec oEmbed?


EDITJ'ai trouvé cette proposition et j'ai essayé de la personnaliser. Cela semble fonctionner, mais il y a une chose qui n'est pas optimale. Vous ne pouvez pas utiliser la $ content_width définie, car cette solution nécessite également une déclaration de hauteur. Avez-vous des idées sur cette approche ou en avez-vous une autre?

 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

Pour le moment, WordPress ne reconnaît que youtube.com/watch, youtube.com/playlist et youtu.be. Cependant, il existe wp_oembed_add_provider ; essayez quelque chose comme

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

(non testé désolé). Vous pouvez même écraser les fournisseurs existants pour les rediriger vers -nocookie, puis utiliser le shortcode vidéo normalement. Et vous pouvez le faire avec add_filter('oembed_providers', ... ); si vous préférez.

1
Rup