Wordpress template_directory函数忽略自签名SSL

时间:2013-12-14 00:38:09

标签: wordpress ssl https

编辑 - 看起来问题的原因是wordpress HTTPS插件。如果我禁用它会按预期工作。

使用wordpress方法get_template_directory_uri()或相关的等效方法提供所有样式和脚本路径。 docs在第一行非常清楚:

  

检索当前主题的模板目录URI。检查SSL。

但是,使用自签名SSL仍会返回http路径,这当然会导致所有css和js失败。

我们这样包括:

<script src="<?php echo get_template_directory_uri(); ?>/js/lib/bootstrap-custom.js"></script>

有没有人知道是否有一个解决方法不需要更改我们调用get_template_directory_uri()的每个实例,或者这只是因为SSL身份未验证该功能无法使用https?

我们使用自签名SSL希望我们可以使用Authorize.net运行快速交易测试(无论如何可能不喜欢自签名SSL)所以我们不必为可能需要2分钟的测试购买实际的SSL核实。快捷方式呢,是吗?任何意见都表示赞赏。

2 个答案:

答案 0 :(得分:1)

检查WooCommerce如何强制template_directory_uristylesheet_directory_uri上的SLL:

https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-https.php#L23

答案 1 :(得分:1)

你必须深入挖掘才能找到它,但它正在做的是检查当前正在处理的请求是否正在使用SSL。

基本上,is_ssl()函数如下:

function is_ssl() {
    if ( isset($_SERVER['HTTPS']) ) {
        if ( 'on' == strtolower($_SERVER['HTTPS']) )
            return true;
        if ( '1' == $_SERVER['HTTPS'] )
            return true;
    } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
        return true;
    }
    return false;
}

那么,您是否使用https请求来使用此代码?