WordPress开启HTTPS后正文图片改为HTTPS两种方法

WordPress 站点开启 HTTPS 后,文章中引用的图片就很有必要把 HTTP 统一改为 HTTPS,要不然会地址栏上的绿锁就会有黄色的三角,感觉是很不爽的。为了解决这个问题,我们有两种方法:一个是治标不治本的办法,就是在主题的  functions.php 文件中加入字符替换语句,这样读者在每次访问的时候会相应的把图片的 http 链接替换为 https,而数据库的原始内容不变;另一个彻底根治的办法是,直接进入数据库用 SQL 语句把 HTTP 直接替换为 HTTPS。下面老文笔记就这两个方法本文做简单介绍:

WordPress开启HTTPS后正文图片改为HTTPS两种方法 - 第1张 - boke112联盟(boke112.com)

方法一:通过主题的 functions.php 文件来批量替换

在主题文件的 functions.php(WP后台“外观”-“编辑”右侧可以找到)里加入如下代码(注意域名需要做相应修改)

/* 替换图片链接为 https */
/* 来源(https://www.wenrr.com/): */
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');

PS:老文认为应该不用那么复杂,直接使用以下代码可能会更加简练一些,毕竟大家的域名基本上都是固定的。

function replacehttp($content){
if( is_ssl() ){
$content = str_replace('http://域名/wp-content/uploads', 'https://域名/wp-content/uploads', $content);
}
return $content;
}
add_filter('the_content', 'replacehttp');

方法二:通过 SQL 语句进行正文的批量替换

PS:操作前请务必对数据库进行备份,以避免不可挽回的数据丢失!

WordPress开启HTTPS后正文图片改为HTTPS两种方法 - 第2张 - boke112联盟(boke112.com)

运行如下语句批量替换:

UPDATE wp_posts SET post_content = replace(post_content, 'http://域名/wp-content/uploads','https://域名/wp-content/uploads');

PS:记得将以上语句中的域名及路径个自己的,如果更改过数据库表的前缀,还要记得修改wp_为自己的前缀哦。

关于WordPress开启HTTPS后正文图片改为HTTPS两种方法的相关内容;如有侵权,请联系老文删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
老文的头像老文
上一篇 2021年9月27日 上午11:19
下一篇 2021年10月7日 上午1:26

相关推荐

  • 宝塔面板设置又拍云备份出现“API资料效验失败,请核实“提示的解决办法以及原因

    今天在宝塔面板设置备份网站,由于又拍云是有免费备份的存储空间的,所有就用又拍云备份网站,但是设置的时候出现了提示:“API资料效验失败,请核实“(如下图),倒腾了半天,后来找出了原因!下面博主来说说宝塔面板设置又拍云备份出现“API资料效验失败,请核实“提示的解决办法以及原因。 原因1:如果你是外网服务器,请关闭宝塔面板防火墙里面的禁止“国外访问”。 原因2…

    2021年8月12日
    899
  • WordPress网站标题的分隔符-被转义为&#8211的解决办法

    最近不少用户给我反馈在使用WordPress主题时,在SEO设置中的分隔符自定义成英文特殊字符横杠”-“后,会被转义成HTML字符&#8211 原因是这一切都是WordPress想的太过周到的锅,默认情况下,它会调用函数wptexturize来执行这个转换。 解决办法1:停止使用wptexturize转义任何字符 ad…

    2021年11月7日
    736
  • 防黑客攻击:能够让WordPress网站更安全的5款插件

    有一个普遍的误解认为小型网站不会受到网络犯罪的威胁。事实上,现在网络犯罪比以往任何时候都要多。根据调查显示,2018年企业主因网络犯罪损失了3900万美元,这比2017年增长了161%。 如果你经营一家小型电子商务商店,你的WordPress网站很可能会成为黑客的攻击对象,其带来的结果可能是毁灭性的。2017年,60%的网络犯罪受害者在事件发生后不到6个月就…

    2021年8月19日
    403
  • 使用宝塔面板Shell脚本设置定时重启MySQL服务

    服务器最近用宝塔数据库服务发现偶尔会长时间有很多占用内存的情况,配置也不是很高,只能定时重启一下MySQL服务了。给大家分享一下我的方法,挺简单的。 简单介绍 首先重启MySQL命令是 service mysqld restart,知道了就简单了,只要在计划任务加上shell脚本就好。 操作方法 1、打开计划任务界面,提交下图内容,然后在添加任务即可。 2、…

    2022年3月26日
    1.1K
  • zblog的开发模式是做什么的?zblog开发模式有什么作用?

    zblog后台有一个开发模式是做什么的?zblog开发模式有什么作用呢?本文就尝试来说明下这个问题。 首先zblog的开发模式在后台–网站设置–全局设置里面如下图: 这个模式默认是关闭的。顾名思义这个模式是给开发人员使用的,一般用户不建议开启。 那么普通用户什么时候需要用到这个呢?当你的网站出现问题,某个页面出现了错误提示的时候,这个…

    2021年11月18日
    546