强制Wordpress使用https进行嵌入

时间:2015-09-21 03:45:06

标签: wordpress

我最近将我的Wordpress v4.3.1博客更改为HTTPS,导致YouTube视频停止工作。显示空白区域而不是视频播放器。这是因为当页面通过http提供时,Firefox会阻止https个内容。

Wordpress将帖子中的YouTube链接转换为iframe HTML代码,但似乎忽略了https

我尝试使用如下的短代码,但没有成功:

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

我已按https://wordpress.org/support/topic/forcing-ssl-return-for-youtube-oembed中所述尝试了apply_filter,但没有成功。这可能与apply_filter未正确应用有关。

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

我还有哪些其他选择?

3 个答案:

答案 0 :(得分:1)

请参阅https://www.bram.us/2014/12/06/migrating-your-wordpress-website-from-http-to-https/的第4步:您需要更新数据库的内容才能使用https嵌入。

例如:

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

对于oembeds,这是另一回事,因为它们没有存储在wp_posts中。在wp_postmeta 中快速搜索oembeds时(无法验证,因为我不使用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');

这应该可以解决问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我用非Wordpress方式解决了:

$content = str_replace('http://www.youtube.com', 'https://www.youtube.com', $content);
$content = str_replace('http://youtube.com', 'https://youtube.com', $content);