2015-09-21 74 views
0

我最近將我的Wordpress v4.3.1博客更改爲HTTPS,導致YouTube視頻停止工作。顯示空白區域而不是視頻播放器。這是因爲當頁面通過https服務時,Firefox阻止http內容。Force Wordpress使用https嵌入

Wordpress將帖子中的YouTube鏈接轉換爲iframe HTML代碼,但似乎忽略了https

我使用簡碼如下試過了,沒有成功:

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

我也試過apply_filterhttps://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。當快速周圍的Googling 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);