wordpress改造为https网站关于图片附件路径问题的解决

网站改成https其他都比较简单,申请ssl和网站搭建比较简单就不说了。重点说下附件图片的问题,因为之前的内容比较多,很多已经是固定的非https的地址,这样就出现有时打不开的情况。对于没有经验的同学弄起来还是比较费力费脑筋,我就把我总结出来的实战经验分享来。

方法两个步骤:

1、第一打开 https://maxin.cn/wp-admin/options.php

找到upload_url_path,后面填写//img.maxin.cn/wp-content/uploads

目的是在新加的内容里图片等都是显示这个域名路径

2、数据库对已有的路径进行替换

用数据库管理工具如PHPmyadmin,找到对应的数据库,执行如下sql(如果数据库表明不一致记得修改)

UPDATE wp_posts SET post_content = replace(post_content, ‘http://maxin.cn/wp-content/uploads’,’//img.maxin.cn/wp-content/uploads’);

如果有多个地址都进行类似处理。

这样就完成了。需要注意的时我都写成了//img.maxin.cn/***,一是用了二级域名,这么做为了方便单独管理和用cdn等,这不是必须的,可以继续用同一个域名;二是去掉了https,这个意思是跟网页实际地址保持一致,如果http和https同时存在或完全改为http的,也不需要再改回来了,自动会跟从网页协议。

网络上还有一种方法我直接转载过来大家参考:

通过主题的 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’);

Category: 未分类

发表评论

电子邮件地址不会被公开。 必填项已用*标注