Feng’ Blog

wordpress全站开启HTTPS协议的方法
自从百度站长平台发布的《百度开放收录https站点公告》中表示对相同权值的站点,会优先对待采用https协议的页面...
扫描右侧二维码阅读全文
02
2018/01

wordpress全站开启HTTPS协议的方法

自从百度站长平台发布的《百度开放收录https站点公告》中表示对相同权值的站点,会优先对待采用https协议的页面后,https瞬间火爆起来,各大小网站纷纷启用https协议。但是很多wordpress用户给服务器安装配置SSL证书开启https协议后发现,网站内容不能正常访问显示了,之所以会这样是因为还没有对wordpress进行对应的修改,下面分享修改方法让wordpress网站全面支持https协议。

利用wordpress提供的api,通过修改主题让wordpress支持https。

优点:不涉及数据库,操作简单,不再使用https时只需要把代码删除即可,不会伤及网站。

缺点:换主题的时候要重新修改。

代码一:HTTPS绝对链接替换(推荐)

在当前使用主题的functions.php文件中添加以下代码:

  1. function fanly_ssl(){
  2. if( is_ssl() ){
  3. ​ function fanly_ssl_main ($content){
  4. ​ $siteurl = get_option('siteurl');
  5. ​ $upload_dir = wp_upload_dir();
  6. ​ $content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content);
  7. ​ $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'),
  8. ​ 'https:'.strstr($upload_dir['baseurl'], '//'), $content);
  9. ​ return $content;
  10. ​ }
  11. ​ ob_start("fanly_ssl_main");
  12. }
  13. }
  14. add_filter('get_header', 'fanly_ssl');

代码二:HTTPS相对链接替换 使用相对链接,HTTP和HTTPS双协议共存。

在当前使用主题的functions.php文件中添加以下代码:

  1. add_filter('get_header', 'fanly_ssl');
  2. function fanly_ssl(){
  3. ​ if( is_ssl() ){
  4. ​ function fanly_ssl_main ($content){
  5. ​ $siteurl = get_option('siteurl');
  6. ​ $upload_dir = wp_upload_dir();
  7. ​ $content = str_replace( 'http:'.strstr($siteurl, '//'), strstr($siteurl, '//'), $content);
  8. ​ $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), strstr($upload_dir['baseurl'], '//'), $content);
  9. ​ return $content;
  10. ​ }
  11. ​ ob_start("fanly_ssl_main");
  12. ​ }
  13. }

另外,除了这个大头意外,你还需要关心站内的各种内链:

  • 修改“菜单”当中的所有“自定义链接”为相对路径;
  • 修改“设置”→“常规”里的“站点地址”和“WordPress 地址”为 HTTPS;
  • 修改其他自己手贱写入的绝对链接地址……
Last modification:January 8th, 2019 at 10:42 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment