Я использую систему шаблонов underscorejs в одном из моих плагинов WordPress, но один из пользователей отправил мне это сообщение:
Ошибка разбора: синтаксическая ошибка, неожиданный T_VAR в /wp-content/plugins/dnui-delete-not-used-image-wordpress/html/backup.php в строке 13
После некоторого поиска я пришел к выводу, что PHP интерпретирует <%
лайк <?php
и пытается запустить код, но код находится в подчеркивании js / template
<% var src; %>
Кто-нибудь из вас имеет представление о том, почему это? как это исправить? Я пытаюсь найти, как изменить
<?php
для другого типа, но получил только ответ
<?
Если вы использовали wp.template для своих шаблонов, вы можете найти ответ Вот
если вы используете шаблон подчеркивания непосредственно в вашем 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 ) );
Других решений пока нет …