get_template_directory_uri()在SSL网站

时间:2017-01-21 10:40:00

标签: wordpress ssl

我知道这个话题已经讨论过,但似乎没有找到解决方案。这是我的情况: 我有一个现在有SSL的wordpress网站。但是,在主题资源中添加如下:

wp_enqueue_script( 'spectrumwp-conditional', get_template_directory_uri() . '/js/vendor/conditional.js', array('jquery'), null, true);

但是get_template_directory_uri()会返回http为https的网址。

你能帮我解决一下吗?

修改 我把它添加到我的wp-config.php文件

$_SERVER['HTTPS']='on';

资源链接显示为https://但不是,例如

https://www.exaple.com/wp-content/plugins/ ...

我有

https://www.example.com/plugins/LayerSlider/ ...

e.g。缺少wp-content文件夹

最终更新:

取消注释

 define('FORCE_SSL_ADMIN', true);

并添加

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
 {  $_SERVER['HTTPS']='on'; }

在行

之前
/* That's all, stop editing! Happy blogging. */
解决了这个问题!只是,我建议不使用$ _SERVER ['HTTP_X_FORWARDED_PROTO'],因为它可能不够准确。

解决了!

2 个答案:

答案 0 :(得分:1)

您需要使用is_ssl()来检查网站是否正在运行https://或http://

这是检查和重定向的钩子:

function check_if_https() {
if ( !is_ssl() ) {
    wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
    exit();
  }
}
add_action ( 'template_redirect', 'check_if_https', 1 );

答案 1 :(得分:0)

进入设置 - >常规并检查网站网址。

听起来你遇到的问题是这个值仍然是HTTP,而不是HTTPS。谨慎处理此更改。确保您有一个有效的备份,并充分了解此URL需要更改的原因以及它将产生的影响。

get_template_directory_uri()会在正确设置网站网址时自动提供HTTPS链接。