1. 首页
  2. 传统网媒
  3. 站友攻略
  4. WordPress

WordPress开启SSL:图片http路径改为https

WordPress 站点开启 HTTPS

文章中引用的图片就很有必要把 HTTP 统一改为 HTTPS

不然地址栏上的绿锁就会有黄色的三角,测试安全会降分,显示调用了不安全的http文件

 

通过 functions.php 开启 HTTPS

这种方法是治标不治本的办法,就是在主题的 functions.php 文件中加入字符替换语句

在主题文件的 functions.php(WP后台“外观”-“编辑”右侧可以找到)里加入如下代码:

/* 替换图片链接为 https */
/* 站友网(https://wanghi.cn): */
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');

注意:请将域名做相应修改,否则会调用出错;

这样读者在每次访问的时候会相应的把图片的 http 链接替换为 https,而数据库的原始内容不变;

 

通过 SQL数据库 开启 HTTPS

彻底根治的办法是,直接进入数据库用 SQL 语句把 HTTP 直接替换为 HTTPS

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

运行如下语句批量替换:

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

记得将以上语句中的域名及路径个自己的,

如果更改过数据库表的前缀,还要记得修改wp_为自己的前缀

对数据库进行操作的小白,建议安装数据库管理插件 WP-DBManager

海计划公众号