2015-09-21 2 views
0

Недавно я переключил свой блог Wordpress v4.3.1 на HTTPS, в результате чего видеоролики YouTube перестали работать. Вместо видеопроигрывателя отображается пустая область. Это связано с тем, что Firefox блокирует содержимое http, когда страница подана через https.Force Wordpress для использования https для вложений

Wordpress конвертирует ссылки на YouTube в сообщение iframe Код HTML, но, кажется, игнорирует https.

Я попытался с помощью шорткод следующим образом, без особого успеха:

[youtube=https://www.youtube.com/watch?v=IxZ_ZznO2ek] 

Я также попытался apply_filter, как описано в https://wordpress.org/support/topic/forcing-ssl-return-for-youtube-oembed, но без успеха. Это может быть связано с неправильным применением apply_filter.

$content = get_the_content();      
add_filter('the_content', 'add_secure_video_options', 10); 
$content = apply_filters('the_content', $content); 

Какие еще варианты у меня остались?

ответ

1

См шаг 4 из https://www.bram.us/2014/12/06/migrating-your-wordpress-website-from-http-to-https/: вам необходимо обновить содержимое базы данных, чтобы использовать HTTPS встраивает.

Например:

# Update YouTube embeds UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.youtube.com', 'https://www.youtube.com');

Для oembeds это разные вещи, так как они не хранятся в wp_posts. Когда быстро погуглить вокруг oembeds кэшируются в wp_postmeta(не могу проверить, так как я не использую oembed):

SELECT * FROM wp_postmeta WHERE meta_key LIKE "%_oembed%"

Вам нужно заменить их с помощью замены запроса, как показано в инструкции выше , Из верхней части моей головы:

# Update YouTube oembeds UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://www.youtube.com', 'https://www.youtube.com');

Это должно сделать трюк.

0
[embed width="123" height="456"]http://www.youtube.com/watch?v=dQw4w9WgXcQ[/embed] 
+0

Не работает :( – bart

0

Я решил в не Wordpress образом:

$content = str_replace('http://www.youtube.com', 'https://www.youtube.com', $content); 
$content = str_replace('http://youtube.com', 'https://youtube.com', $content); 
Смежные вопросы