You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress站点wp-content/theme路径混合内容问题排查求助

解决WordPress SSL混合内容(主题文件HTTP请求)问题

排查get_template_directory_uri()返回错误的原因

  • 确认站点URL设置:后台「设置-常规」里的「WordPress地址(URL)」和「站点地址(URL)」必须全为https://开头,哪怕已修改数据库,也要核实后台这两个值是否生效——有时数据库修改后缓存未清会导致后台显示旧值。
  • 检查wp-config.php配置:若之前手动添加过WP_HOME或WP_SITEURL常量,确保其URL以https://开头,示例代码:
    define('WP_HOME','https://你的域名.com');
    define('WP_SITEURL','https://你的域名.com');
    
  • 清空所有缓存:包括服务器缓存、CDN缓存、WordPress插件缓存(如WP Rocket、W3 Total Cache),混合内容报错常因缓存内残留旧HTTP链接导致。
  • 排查主题硬编码链接:部分主题开发者未正确使用get_template_directory_uri(),而是直接写入HTTP绝对路径(如http://你的域名.com/wp-content/themes/xxx/style.css)。需在主题的functions.php、header.php等文件中搜索http://,将硬编码链接替换为get_template_directory_uri()或get_stylesheet_directory_uri()生成的动态路径。
  • 添加强制SSL配置:在wp-config.php中加入以下代码,确保全站强制HTTPS:
    define('FORCE_SSL_ADMIN', true);
    if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
        $_SERVER['HTTPS'] = 'on';
    }
    
  • 配置服务器强制跳转:
    • Apache服务器:在.htaccess中添加规则:
      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
      
    • Nginx服务器:在配置文件中添加:
      server {
          listen 80;
          server_name 你的域名.com;
          return 301 https://$server_name$request_uri;
      }
      

验证get_template_directory_uri()返回值

可在主题header.php中临时添加以下代码,直接输出函数返回值,确认是否为HTTPS:

<?php echo get_template_directory_uri(); ?>

访问网站前端查看输出结果:若仍为HTTP,优先排查站点URL配置或wp-config常量;若为HTTPS,则需检查主题内是否存在未使用该函数的硬编码链接。

内容的提问来源于stack exchange,提问作者sada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:20:56