我想在WordPress中添加以下脚本:
<script type="text/x-jquery-tmpl">
...
</script>
但使用:wp_add_inline_script( \'my-script\', \'...\' );
将给我:<script type="text/javascript">
...
</script>
我必须编辑吗header.php
对于任何类型的非javascript脚本?我想在WordPress中添加以下脚本:
<script type="text/x-jquery-tmpl">
...
</script>
但使用:wp_add_inline_script( \'my-script\', \'...\' );
将给我:<script type="text/javascript">
...
</script>
我必须编辑吗header.php
对于任何类型的非javascript脚本?在头部打印脚本是一种称为do_item
在wp_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;
}
注意:我没有测试此代码,因此可能需要进行一些调试。我正在以以下方式删除WordPress中的jQuery迁移:add_filter( \'wp_default_scripts\', \'remove_jquery_migrate\' ); function remove_jquery_migrate( &$scripts ){ if(!is_admin()){ $scripts->remove( \'jquery\'); $scripts->add( \