我知道这个话题已经讨论过了,但似乎没有找到解决方案。这是我的情况:我有一个wordpress网站,现在有SSL。但是,在主题中,资源添加如下:
wp_enqueue_script( 'spectrumwp-conditional', get_template_directory_uri() . '/js/vendor/conditional.js', array('jquery'), null, true);
但是 get_template_directory_uri() 返回的 URL 包含 http 而不是 https。
你能帮我解决这个问题吗?
编辑:我把它添加到我的 wp-config.php 文件中
$_SERVER['HTTPS']='on';
指向资源的链接以 https://显示,而不是例如
https://www.exaple.com/wp-content/plugins/...
我有
https://www.example.com/plugins/LayerSlider/...
例如,缺少WP内容文件夹
最终更新:
取消注释
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'],因为它可能不够准确。
解决!
使用 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 );
"设置"->"常规"并检查站点 URL。
听起来您遇到的问题是此值仍然是HTTP,而不是HTTPS。请谨慎处理此更改。确保您有一个有效的备份,并充分了解为什么需要更改此 URL 以及它将产生的影响。
正确设置站点 URL 后,get_template_directory_uri()
将自动提供 HTTPS 链接。