Wie bette ich Youtube-Videos mit https statt http in die URL ein?

Ich betreibe eine Website, die nur über SSL / https kommuniziert. Wenn ich also ein Youtube-Video über HTTP einbette, erhalte ich eine Fehlermeldung, dass die Site nicht vollständig sicher ist. Ist es möglich, etwas neu zu schreiben, so dass WordPress https akzeptiert und automatisch youtube-Links in den Inhaltsbereich einbettet? Ursache: Wenn ich versuche, einen https-Youtube-Link einzubetten, wird nur die URL und kein Film angezeigt.

Aktualisieren

Ich habe versucht, Anbieter mit diesem Code in functions.php hinzuzufügen, aber es tut nichts:

wp_oembed_add_provider('https://youtu.be/*', 'https://youtube.com/oembed' ); wp_oembed_add_provider('#https://(www\.)?youtube.com/watch.*#i', 'https://youtube.com/oembed', true); wp_oembed_add_provider('http://youtu.be/*', 'https://youtube.com/oembed' ); wp_oembed_add_provider('#http://(www\.)?youtube.com/watch.*#i', 'https://youtube.com/oembed', true); 

Solutions Collecting From Web of "Wie bette ich Youtube-Videos mit https statt http in die URL ein?"

http://core.trac.wordpress.org/ticket/18719 hat jetzt einen funktionierenden Patch.

Edit: Plugin-Code, um ähnlich zu tun, bis Patch hereinkommt:

 wp_oembed_add_provider('#https://(www\.)?youtube.com/watch.*#i', 'http://youtube.com/oembed?scheme=https', true); wp_oembed_add_provider('https://youtu.be/*', 'http://youtube.com/oembed?scheme=https', false ); 

Ottos Lösung funktioniert in WP 3.6 nicht, vermutlich weil die oembeds sich im core geändert haben und jetzt https: // entsprechen, so dass die hinzugefügten Anbieter niemals übereinstimmen. Obwohl https: // im Core jetzt übereinstimmt, wird immer eine http: // -Einbettung bereitgestellt, auch wenn die ursprüngliche URL https: // lautet. Daher haben wir hier immer noch das gleiche Problem.

Ich habe mich dazu entschlossen, alle oembeds protokoll-relativ umzuwandeln:

 function my_embed_oembed_html( $html ) { return preg_replace( '@src="https?:@', 'src="', $html ); } add_filter( 'embed_oembed_html', 'my_embed_oembed_html' ); 

Sie könnten eine erzwungene https-Rückgabe in der Datei functions.php hacken, um nach Iframes zu suchen, die eine Quelle haben, die mit http beginnt und https ersetzt. [Ich habe das ‘Be’ dieser URLs weggelassen, da einige der Share-URLs youtu.be und youtube.com sind]

 //Embed Video Fix function add_secure_video_options($html) { if (strpos($html, "

Youtube unterstützt https URLs für Videos (fügen Sie einfach das “s” in die reguläre URL ein). Sie erklären jedoch auch, dass

Insbesondere ist derzeit nur der YouTube-Player-Code über HTTPS verfügbar. Auf den eigentlichen Video-Bitstream und einige zusätzliche Inhalte, die vom YouTube-Player geladen werden, kann möglicherweise weiterhin über Standard-HTTP-Verbindungen zugegriffen werden, wenn Sie in Ihrem Einbettungscode eine HTTPS-URL verwenden.

Es sieht also so aus, als ob du noch keine https-Video-Feeds bekommen kannst. Dies scheint durch den von dir geposteten trac-Link bestätigt zu werden: (Kommentar 7 von Otto42) “Bis YouTube die Ergebnisse von https im iframe zurückgibt, würde das Einbetten eines solchen Links in den meisten Browsern nur zu einer errorshaften Seite führen, da der Iframe kein SSL ist . ”

Referenz: http://apiblog.youtube.com/2011/02/https-support-for-youtube-embeds.html

Du kannst auch diese Lösung ausprobieren : http://www.adammershon.com/display-youtube-videos-on-ssl-page/ (Dies würde das Video im Wesentlichen “servieren”, als ob es auf deiner Seite wäre.)

(Ich sehe nichts neues über das Thema.)