今天,一位群友他之前的网站是全站HTTPS的,以前也发布了很多的图片与文章内容等等。
现在,出于成本的考虑,他现在想把全站有HTTPS的地方想改为HTTP,不再用443端口,只用80端口了。或者说HTTPS与http互转。
用过wordpress的都知道,默认情况下WordPress所有的URL都是绝对路径,不管是图片还是其它的,尤其是编辑器插入图片的地方。
第一种方法:WordPress图片内容HTTPS改HTTP
今天就以这位群友为例子,来给大家具体的演示一下,说下过程,如下:
在WordPress中,如果你想将插入的图片链接由HTTPS改为HTTP,你可以通过以下步骤来实现:
前提:
需要先确保你的“WP_HOME”与“WP_SITEURL”已经是设置为了”http“。
如果你用了“Really Simple SSL”插件,还需要先关闭并禁用它。
1、打开你的WordPress网站的安装目录,找到你的主题的“functions.php”文件。
2、在 functions.php 文件中添加以下代码:
注意:重点看有背景颜色的地方。
function relative_images( $html ) {
$https_url = 'https';
if ( strpos( $html, $https_url ) !== false ) {
$html = str_replace( $https_url, 'http', $html );
}
return $html;
}
add_filter( 'the_content', 'relative_images' );
add_filter( 'widget_text', 'relative_images' );
add_filter( 'get_avatar', 'relative_images' );这段代码会将所有链接到你网站的图片https链接转换http链接。
它首先获取你网站的“https”头部协议,然后检查图片链接是否包含这个“https”。如果包含,它就会将这个“https”替换为“http”。
请注意,这段代码可能会影响到你网站上的其他内容,因为它会处理所有的图片链接。在实际使用时,请确保测试和理解代码的影响。
第二种方法:WordPress内容HTTP改HTTPS
WordPress开启HTTPS后,博客原来上传的图片地址依旧为http的链接,这回导致地址栏绿锁显示不正常,那么如何将上传图片网址改成https,实现整站https化,解决方法如下:
本方法是最简单最直接的方法,通过直接修改MySQL数据库,将所有“wp-content/uploads”下的图片等链接均改为https。
注意:操作前请务必对数据库进行备份,以避免不可挽回的数据丢失!
1、使用phpMyAdmin登录WordPress的MySQL数据库。
2、选择你的WordPress数据库,点击“SQL”,输入以下语句:
UPDATE wp_posts SET post_content = replace(post_content, 'http://域名/wp-content/uploads','https://域名/wp-content/uploads');注意:
- “wp_posts”:默认表前缀为wp,如果你修改了表前缀,请改成自己的前缀;
- 将“域名”改成自己的域名;
3、然后,点击“执行”即可。



