WordPress添加自定义类型的脚本(x-jQuery-tmpl)

时间:2017-04-04 作者:contemplator

我想在WordPress中添加以下脚本:

<script type="text/x-jquery-tmpl">  
  ...
</script>
但使用:

wp_add_inline_script( \'my-script\', \'...\' );
将给我:

<script type="text/javascript"> 
  ...
</script>
我必须编辑吗header.php 对于任何类型的非javascript脚本?

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

在头部打印脚本是一种称为do_itemwp_script 班在此方法中,您可以看到这一行:

$tag = "{$cond_before}{$before_handle}<script type=\'text/javascript\' src=\'$src\'></script>\\n{$after_handle}{$cond_after}";
因此,脚本类型在函数中是硬连接的。然而,再往下看几行,您会看到:

$tag = apply_filters( \'script_loader_tag\', $tag, $handle, $src );
这允许您构建一个过滤器来更改脚本类型。首先,将脚本文件排队in the usual way:

wp_enqueue_script (\'my-script-handle\', \'http://.../my-script.js\');
然后,您将定义一个过滤器,用于更改此特定脚本的脚本类型:

add_filter (\'script_loader_tag\', wpse262406_change_script_type, 10, 3);
function wpse262406_change_script_type ($tag, $handle, $src) {
  if ($handle == \'my-script-handle\')
    $tag = str_replace (\'text/javascript\', \'text/x-jquery-tmpl\', $tag);
  return $tag;
  }
注意:我没有测试此代码,因此可能需要进行一些调试。