解决WordPress开启HTTPS后图片不能正常加载的问题

Nginx开启了Https支持,但是在Https打开网页的时候,发现,图片都不能正常的显示出来,看了一下源代码,发现是网页中的图片链接都被写成了HTTP的,导致浏览器出于安全的原因,不再加载图片,导致效果很差,因此需要WordPress同时支持HTTP,HTTPS。

找到当前主题下的 functions.php 文件,编辑之,在里边代码的末尾追加如下代码:

/* 替换图片链接为 https */
function https_image_replacer($content){
    if( is_ssl() ){
        /*已经验证使用 $_SERVER['SERVER_NAME']也可以获取到数据,但是貌似$_SERVER['HTTP_HOST']更好一点*/
        $host_name = $_SERVER['HTTP_HOST'];
        $http_host_name='http://'.$host_name.'/wp-content/uploads';
        $https_host_name='https://'.$host_name.'/wp-content/uploads';
        $content = str_replace($http_host_name, $https_host_name, $content);
    }
    return $content;
}
add_filter('the_content', 'https_image_replacer');

 

THE END