我正在构建一个子主题,我需要替换父主题中的一些文件,以创建一些新功能。当我遇到使用< %%>的此类代码时。我不知道他们做了什么或如何在语法中工作。我需要像这样写它。他们在echo中使用了if语句,我无法理解他们是如何" et_pb_showcase_tax"是选定的分类。那么我如何得到" et_pb_showcase_tax"是$ current_taxonomy?
代码:
$get_taxonomies = get_taxonomies();
if($get_taxonomies){
echo '<select id="et_pb_showcase_tax">';
foreach ( $get_taxonomies as $taxonomy ) {
echo <<<END
<option value="$taxonomy"<%= typeof( et_pb_showcase_tax ) != 'undefined' && '$taxonomy' == et_pb_showcase_tax ? ' selected="selected"' : '' %>> $taxonomy </option>
END;
}
echo '<select>';
}
任何事情都会有所帮助! 提前谢谢!
答案 0 :(得分:2)
那些是ASP short tags。由于您似乎使用PHP,因此必须将其逻辑转换为PHP。
答案 1 :(得分:0)
此代码已损坏,或设计为通过某些预处理器运行。
ASP样式标记(<% ... %>
)的内容看起来像JavaScript(检查typeof(x)
匹配字符串'undefined'
是如何检测未初始化的变量),但方式它与PHP和HTML混合在一起毫无意义。
编写WordPress主题的人可能是基于某些ASP代码编写的,并且没有正确检查剩余的代码。
但是,我无法解释如何将PHP值与JS值进行比较,并且结果只是将HTML属性回显到正确的位置 - PHP必须先运行到回显'$taxonomy'
的值,但它也会回显整个<select>
,所以将属性插入到它的中间为时已晚。我得出结论,这段代码要么是魔术,要么是无意义的。