返回
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 | 开始引入 |
使用示例
对于负载平衡器
它不适用于负载平衡器之后的网站,尤其是网络解决方案托管的网站。要解决这个问题,请将这个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';
如果在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; }