将WordPress文章图片从http转为https

这几天在调试主题维护网站的时候,发现Chrome提示我“您访问的页面不安全”,F12查看Debug,提示的关键词为Mixed Content,意思是“混合的内容”,怎么解决Wordpress的Mixed Content呢?

Mixed Content一般出现为:当浏览器以加密形式(https)加载页面html时Html页面时,该页面的部分资源文件(如图片、视频、样式表文件、脚本等)使用了非加密的http方式进行加载,浏览器则认这是不安全的加载方式,会提示甚至阻断用户加载网页。

将Wordpress文章图片从http转为https
mixed content

如下图所示,Mixed Content会严重影响搜索引擎优化,我这四百多想错误里边有一半都是加载http协议头的图片,因此都需要处理。

将Wordpress文章图片从http转为https
网站监控软件发现我有440处错误,细看好多都是mixed content

因此解决方案也很简单了,就是把页面中所涉内容之所有http协议头换成https,这一方面提高了访问安全性,同时也让网页看起更清爽,有利于用户体验。在Wordpress中有两种方式处理这样的问题,其一是用用一个php小函数将http全部跳转为https,其二则是改数据库,简单粗暴。

添加function将Wordpress附件变成https

很简单的一段代码,今时今日(2022/08/18)测试正常运行,将此段代码放入你Wordpress主题的function.php或类似功能循环文件中,注意将其中的域名和范围修改成自己的。

//将附件变成HTTPS
function replacehttp($content){
    if( is_ssl() ){
        $content = str_replace('https://www.shephe.com/wp-content/uploads', 'https://www.shephe.com/wp-content/uploads', $content);
    }
    return $content;
}
add_filter('the_content', 'replacehttp');

修改数据库将Wordpress正文中的http变成https

登录你的phpMyAdmin数据库管理面板,首先选中你wordpress的数据库,然后点击SQL,运行如下语句(请将域名修改成自己的),done!

UPDATE wp_posts SET post_content = replace(post_content, 'https://www.shephe.com/wp-content/uploads','https://www.shephe.com/wp-content/uploads');
修改数据库将Wordpress正文中的http变成https
修改数据库将Wordpress正文中的http变成https
1920 1342 牧羊人
「将WordPress文章图片从http转为https」有9条评论
  • 木頭人
    08/24/2022 at 10:30 回复

    囧,文章代码是啥都没有替换~

    也可以搞成相对路径,比如 http://test.com/img/test.jpg 改成 //test.com/img/test.jpg 或者 /img/test.jpg

    • 牧羊人
      06/23/2023 at 21:30 回复

      如何实现?

      • 木頭人
        06/25/2023 at 18:35 回复

        貌似你实际已经替换了,只是这篇文章代码中 替换前 和 替换后 的内容是一样的。

  • ejsoon
    08/22/2022 at 13:48 回复

    我是直接導出數據庫,批量替換之後再導入。

    • 牧羊人
      06/23/2023 at 21:30 回复

      评论太多了

  • S̆̈
    08/20/2022 at 21:41 回复

    治标不治本,放wp-content里图一多站就垮了。。。。

    • 牧羊人
      08/21/2022 at 00:25 回复

      直接修改数据库应该是没有问题的哦,我现在有台阿里云性能就不够了,,有时候会卡爆

      • 木瓜园
        08/21/2022 at 06:05 回复

        阿里云啥配置

        • 牧羊人
          08/22/2022 at 16:12 回复

          yiji 已经停售的 tiny类型,单核1g,机械硬盘的那种,很多年前的了

回复 ejsoon 取消

请输入关键词…