Come incorporare i video di YouTube con https invece di http nell'URL?
Gestisco un sito che comunica solo tramite SSL/https, quindi se incorporo un video YouTube usando http ricevo un messaggio di errore che indica che il sito non è completamente sicuro. È possibile modificare qualcosa affinché WordPress accetti https e continui ad incorporare automaticamente i link YouTube aggiunti nell'area dei contenuti? Perché ora, quando provo ad incorporare un link YouTube con https, viene mostrato solo l'URL, non il video.
Aggiornamento
Ho provato ad aggiungere i provider usando questo codice in functions.php ma non funziona:
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);

La soluzione di Otto non funziona in WP 3.6, presumibilmente perché gli oembed sono cambiati nel core e ora corrispondono a https://, quindi i provider aggiunti non vengono mai confrontati. Anche se https:// ora corrisponde nel core, fornisce sempre un embed http:// anche se l'URL originale è https://, quindi abbiamo ancora lo stesso problema qui.
Ho deciso di convertire semplicemente tutti gli oembed relativi al protocollo:
function my_embed_oembed_html( $html ) {
return preg_replace( '@src="https?:@', 'src="', $html );
}
add_filter( 'embed_oembed_html', 'my_embed_oembed_html' );

Cerco una soluzione temporanea per questo bug fino a quando non verrà risolto nel core, questa era l'unica funzionante. Grazie! Non sono mai riuscito a far funzionare le varianti di wp_oembed_add_provider()
, ad esempio.

http://core.trac.wordpress.org/ticket/18719 ora ha una patch funzionante.
Modifica: Codice del plugin per fare qualcosa di simile fino a quando la patch viene integrata:
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 );

Potresti forzare un ritorno HTTPS nel file functions.php per cercare gli iframe che hanno un src che inizia con http e sostituirlo con https. [Ho omesso il 'be' di questi URL poiché alcuni degli URL di condivisione sono youtu.be e youtube.com]
//Correzione Embed Video
function add_secure_video_options($html) {
if (strpos($html, "<iframe" ) !== false) {
$search = array('src="http://www.youtu','src="http://youtu');
$replace = array('src="https://www.youtu','src="https://youtu');
$html = str_replace($search, $replace, $html);
return $html;
} else {
return $html;
}
}
add_filter('the_content', 'add_secure_video_options', 10);

YouTube supporta gli URL HTTPS per i video (basta aggiungere la "s" nell'URL normale). Tuttavia, dichiarano anche che:
In particolare, solo il codice del player YouTube è accessibile via HTTPS al momento. Il flusso video effettivo e alcuni contenuti aggiuntivi caricati dal player YouTube potrebbero ancora essere accessibili tramite connessioni HTTP standard quando si utilizza un URL HTTPS nel codice di incorporamento.
Quindi sembra che per ora non sia possibile ottenere feed video HTTPS. Questo sembra essere confermato dal link Trac che hai pubblicato: (Commento 7 di Otto42) "Finché YouTube non restituirà risultati HTTPS nell'iframe, incorporare un tale link risulterebbe semplicemente in una pagina rotta nella maggior parte dei browser, poiché l'iframe non è SSL."
Riferimento: http://apiblog.youtube.com/2011/02/https-support-for-youtube-embeds.html
Potresti anche dare un'occhiata a questa soluzione: http://www.adammershon.com/display-youtube-videos-on-ssl-page/ (In sostanza, questo metodo "servirebbe" il video come se fosse sulla tua pagina.)
(Non vedo nulla di più recente sull'argomento.)

Ma ciò non significa che l'iframe non possa essere https, in modo che almeno il codice del player venga caricato in quel modo. La pagina che hai linkato dice che è possibile. Nei miei test, inserire un src https sull'iframe funziona bene su un sito https, mentre un src http non viene visualizzato - ma anche se inserisco un link https, l'[embed] mi restituisce un iframe con http.
