WordPress检查的返回值is_ssl()
在使用创建URL之前get_bloginfo()
. 如果函数返回true,则创建https URL。如果返回false,则创建http URL。
从WordPress源。。。
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发出的,或者请求是通过端口443传入的,那么
get_bloginfo()
将返回
https://
URL。实际上,如果您仍然强制使用https,那么您应该强制将对端口80(http)的所有请求转移到端口443(https)。。。但这是服务器配置问题,而不是WordPress问题。
或者,您可以挂接到过滤器中,并将http替换为https。。。
只需使用:
function replace_http( $original ) {
// use preg_replace() to replace http:// with https://
$output = preg_replace( "^http:", "https:", $original );
return $output;
}
add_filter( \'template_url\', \'replace_http\' );