我正在构建一个子主题,我需要替换父主题中的一些文件,以创建一些新功能。当我遇到这种类型的代码时,您使用 <% %>。我不知道他们做什么或如何在语法中工作。我需要这样写。他们在回声中使用了 if 语句,我不明白他们如何"et_pb_showcase_tax"是选定的分类法。那么我如何让"et_pb_showcase_tax"成为$current_分类法呢?
法典:
$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>';
}
任何事情都会有所帮助!提前感谢!
这些是 ASP 短标记。由于您似乎正在使用 PHP,因此必须将其逻辑转换为 PHP。
此代码要么已损坏,要么设计为通过某些预处理器运行。
ASP样式标签(<% ... %>
)的内容看起来像JavaScript(检查typeof(x)
与字符串'undefined'
匹配是你检测未初始化变量的方式),但它混合到PHP和HTML中的方式毫无意义。
编写WordPress主题的人可能基于某些ASP代码,并且没有正确检查剩余的代码。
但是,我不知所措地解释如何将 PHP 值与 JS 值进行比较,并让结果简单地将 HTML 属性回显到正确的位置 - PHP 必须首先运行以回显 '$taxonomy'
的值,但随后它也会回显整个<select>
, 因此,将属性插入其中为时已晚。我的结论是,这段代码要么是魔术,要么是胡说八道。