鹿泽鹿泽  2024-06-19 08:52:10 鹿泽笔记 隐藏边栏  0 

WordPress站点开启HTTPS后,文章中引用的图片就很有必要把HTTP改为HTTPS,要不然会地址栏上的绿锁就会有黄色的三角。

为了解决这个问题,网上有很多种实现方法:一个是治标不治本的办法,就是在主题的functions.php文件中加入字符替换语句,这样读者在每次访问的时候会相应的把图片的http链接替换为https,而数据库的原始内容不变,这种方法会影响网站访问速度,本人并不推荐用这种方法,虽然简单只需要在主题模板函数文件中添加代码即可。

另外一个彻底解决的办法是,直接进入数据库用SQL语句把HTTP直接替换为HTTPS,下面就这两个方法做简单介绍有需要用到的朋友往下看:

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

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

写法一:

/* 替换文章图片链接为 https */
function https_image_replacer($content){
if( is_ssl() ){
$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');

写法二:

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语句进行正文的批量替换(推荐)

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

用phpmyadmin工具进入数据库管理,点击SQL->粘帖语句到输入框->点击执行即可,运行如下语句批量替换:

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

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

推荐使用方法二,修改数据库,这种方法修改后就不用管了。

1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505