在Wordpress中通过HTTPS加载CSS和JS

Rad*_*dek 2 wordpress .htaccess ssl https http

我的一个网站是在Wordpress中.我在网站上设置了SSL.我想通过HTTP加载整个网站,除了1页让我们称之为PAYMENTS.

当我点击菜单PAYMENTS时,我如何在Wordpress中实现它通过HTTPS加载它并通过HTTPS加载所有CSS和JS.因为当我在网址中手动执行时:https://www.example.com/payments/它加载时没有任何CSS和JS,因为它全部被阻止,因为它在源中通过HTTP加载.

如果我在菜单中点击任何其他项目并返回HTTP,也想实现这一点.

Dav*_*oss 5

你可以通过将这个添加到你的主题的functions.php中来让WordPress使用CSS和JavaScript的Protocol-Agonstic路径:

add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2);
function agnostic_script_loader_src($src, $handle) {
    return preg_replace('/^(http|https):/', '', $src);
}

add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2);
function agnostic_style_loader_src($src, $handle) {
    return preg_replace('/^(http|https):/', '', $src);
}
Run Code Online (Sandbox Code Playgroud)

请注意,像Better WordPress Minify这样的插件不会改变页面中包含脚本和样式的方式,而且这种技术不适用于IE6(现在不应该关注这个问题).

  • 如果这不起作用并且 WordPress HTTPS 不起作用,那么听起来您的主题编码很差,它将所有 Javascript 和 CSS 资源的 URL 硬编码,而不是像您应该在 WordPress 中那样将它们排入队列. (2认同)