配置WordPress以生成无方案的相对URL

时间:2017-12-03 作者:Alan Storm

我有一个WordPress站点,其中CSS和Javascript URL/标记最终看起来像这样

<link rel=\'stylesheet\' id=\'dashicons-css\'  href=\'http://example.com/wp-includes/css/dashicons.min.css?ver=4.7.8\' type=\'text/css\' media=\'all\' />
<script type=\'text/javascript\' src=\'http://example.com/wp-includes/js/jquery/jquery.js?ver=1.12.4\'></script>
是否可以将WordPress配置为使用无方案的相对URL?i、 e生成如下所示的链接?

<link rel=\'stylesheet\' id=\'dashicons-css\'  href=\'//example.com/wp-includes/css/dashicons.min.css?ver=4.7.8\' type=\'text/css\' media=\'all\' />
<script type=\'text/javascript\' src=\'//example.com/wp-includes/js/jquery/jquery.js?ver=1.12.4\'></script>
(最终目标是HTML页面,通过http 如果他们通过http, 或https 如果他们通过https)

如果这是不可能的,是否有人有建议(哪些函数或挂钩的目标)的人希望写一个插件,可以做到这一点?

此外,是的,仅通过HTTPs提供服务是一种解决方案,但对于我的特定场景来说并不可行。

谢谢

1 个回复
SO网友:Nathan Johnson

您可以使用style_loader_srcscript_loader_src 过滤器。

namespace WPSE;

\\add_filter( \'style_loader_src\' , __NAMESPACE__ . \'\\protocol_relative-url\' );
\\add_filter( \'script_loader_src\', __NAMESPACE__ . \'\\protocol_relative-url\' );

function protocol_relative_url( string $url ) : string {
  return str_replace( [ \'http:\', \'https:\' ], \'\', $url );
}

/* Notes:
 * Namespaces require PHP > 5.3
 * [] array syntax requires PHP > 5.4
 * String type declaration requires PHP > 7.0
 */

结束

相关推荐

使用Apply_Filters帮助输出POST类

我不熟悉脚本,这是一个插件,我想修改它来输出post类。当我尝试使用时:apply_filters( \'post_class\', $page->post_class ) it仅输出array=\" \". 我是否需要一个附加函数来连接到post类?在我的研究中,我无法判断我的语法是否错误,或者我在类中缺少了一个要“拉”的函数apply_filters 抓住。非常感谢你的帮助。 var $db_fields = array (\'parent\' => \'post_parent\',