将jQuery加载的标题图像更改为使用HTTPS

时间:2015-10-24 作者:Cijo

我的主题包含视差标题图像。如何更改标题图像的URL,使其使用HTTPS? 我想手动操作。

当前URL为:

http://example.com/themes/abc/header.jpg
我想将其更改为:

https://example.com/themes/abc/header.jpg
插件在这个特定文件上帮不了我(它们正在转换其他文件)。Chrome告诉我正在加载标题jquery.js. 我不知道jQuery是如何做到这一点的。

我相信编辑functions.php 我可以帮忙,但我怎么做呢?

1 个回复
SO网友:Ethan O\'Sullivan

你考虑过吗Protocol Rewriting? 下面的代码将转换所有http:https:// 对于每个脚本、链接、基础和图像。将此放置在functions.php:

add_action( \'plugins_loaded\', \'wpse_232287_init\' );

function wpse_232287_init() { // Initiate the function
    ob_start( \'wpse_232287_remove_http\' );
}

function wpse_232287_remove_http( $buffer ) {
    // Check for a Content-Type header, only apply rewriting to "text/html" or undefined
    $headers = headers_list();
    $content_type = null;

    foreach ( $headers as $header ) {
        if (strpos( strtolower( $header ), \'content-type:\' ) === 0 ) {
            $pieces = explode( \':\', strtolower( $header ) );
            $content_type = trim( $pieces[1] );
            break;
        }
    }

    if ( is_null( $content_type ) || substr( $content_type, 0, 9 ) === \'text/html\' ) { // Replace \'href\'/\'src\' attributes within script/link/base/img tags with \'//\'
        $return = preg_replace( "/(<(script|link|base|img|form)([^>]*)(href|src|action)=[\\"\'])https?:\\\\/\\\\//i", "$1//", $buffer );
        if ( $return ) { // On regex error, skip overwriting content
            $buffer = $return;
        }
    }
    return $buffer;
}