我在我的一个wordpress插件中使用了underscorejs模板系统,但其中一个用户发给我这条消息:
解析错误:语法错误,第13行/wp-content/plugins/dnui-delete-not-used-image-wordpress/html/backup.php中的意外T_VAR
在做了一些搜索之后,我得出的结论是php正在解释像<%
这样的<?php
并尝试运行代码,但代码是在js /模板下划线
<% var src; %>
你们任何人都知道为什么会这样?怎么解决?我尝试搜索如何更改
<?php
对于另一种类型,但只得到
的答案<?
答案 0 :(得分:0)
如果您使用wp.template作为模板,则可以找到答案here
如果您在js文件中直接使用下划线模板,则应更改模板设置,如下所示:
/*
* Underscore's default ERB-style templates are incompatible with PHP
* when asp_tags is enabled, so your template uses Mustache-inspired templating syntax.
*
* Make the underscore template like wp.template function
*
*/
var templateSettings = {
evaluate : /<#([\s\S]+?)#>/g,
interpolate : /\{\{\{([\s\S]+?)\}\}\}/g,
escape : /\{\{([^\}]+?)\}\}(?!\})/g,
variable : 'data'
};
var innerGizmoTemplate = '<div class="{{ data.className }}">'
+ ' <# _.each( data.params, function( param ){ #>'
+ ' <div class="karma-builder-gizmo-{{ param.type }} {{ param.className }} ">'
+ ' <# if( "icon" === param.type ){ #>'
+ ' <div>{{{ param.icon }}}</div>'
+ '<# } else if( "text" === param.type ) {#>'
+ '<div>{{{ param.value }}}</div>'
+ '<# } #>'
+ '</div>'
+ '<# }) #>'
+ '</div>' ;
// then get it easily like this
var compiled = _.template( innerGizmoTemplate, templateSettings );
console.log( compiled( YourParams ) );