当前浏览:首页 / WordPress函数 / is_ssl()

is_ssl(): bool

确定是否使用SSL

is 条件判断more...

ssl


返回

bool 如果使用SSL为true,否则为false。


更多信息

如果页面使用SSL(检查HTTPS或端口443),则返回true。

注意:这对于一些运用负载均衡后的网站,尤其是网络解决方案托管的网站,是不起作用的。要解决这个问题,请将这个gist保存到插件文件夹中并启用它。详情请阅读WordPress is_ssl()在某些负载均衡器后面不起作用。

支持HTTP_X_FORWARDED_PROTO的负载平衡器或反向代理之后的网站可以通过在require_once调用上方的wp-config.php文件中添加以下代码来修复:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';


源码

查看源码 官方文档


更新日志

版本描述
4.6.0从functions.php移至load.php。
2.6.0开始引入

用户贡献的笔记

  • 贡献者:CodexWill Brownsberger

    对于负载平衡器

    它不适用于负载平衡器之后的网站,尤其是网络解决方案托管的网站。要解决这个问题,请将这个gist保存到插件文件夹中并启用它。有关详细信息,请阅读“WordPress is_ssl()在某些负载平衡器后面不起作用。”

    支持HTTP_X_FORWARDED_PROTO的负载平衡器或反向代理之后的网站可以通过在require_once调用上方的wp-config.php文件中添加以下代码来修复:

    if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
        $_SERVER['HTTPS'] = 'on';
  • 贡献者:Nawawi Jamili

    如果在web proxy/balancer之后,则可以使用此函数。

    function wpdocs_maybe_is_ssl() {
        // cloudflare
        if ( ! empty( $_SERVER['HTTP_CF_VISITOR'] ) ) {
            $cfo = json_decode( $_SERVER['HTTP_CF_VISITOR'] );
            if ( isset( $cfo->scheme ) && 'https' === $cfo->scheme ) {
                return true;
            }
        }
    
        // other proxy
        if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
            return true;
        }
    
        return function_exists( 'is_ssl' ) ? is_ssl() : false;
    }