如何从<%=%>内的变量中提取php变量

时间:2014-11-29 11:29:58

标签: php wordpress

我正在构建一个子主题,我需要替换父主题中的一些文件,以创建一些新功能。当我遇到使用< %%>的此类代码时。我不知道他们做了什么或如何在语法中工作。我需要像这样写它。他们在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>';
}

任何事情都会有所帮助! 提前谢谢!

2 个答案:

答案 0 :(得分:2)

那些是ASP short tags。由于您似乎使用PHP,因此必须将其逻辑转换为PHP。

答案 1 :(得分:0)

此代码已损坏,或设计为通过某些预处理器运行。

ASP样式标记(<% ... %>)的内容看起来像JavaScript(检查typeof(x)匹配字符串'undefined'是如何检测未初始化的变量),但方式它与PHP和HTML混合在一起毫无意义。

编写WordPress主题的人可能是基于某些ASP代码编写的,并且没有正确检查剩余的代码。

但是,我无法解释如何将PHP值与JS值进行比较,并且结果只是将HTML属性回显到正确的位置 - PHP必须先运行到回显'$taxonomy'的值,但它也会回显整个<select>,所以将属性插入到它的中间为时已晚。我得出结论,这段代码要么是魔术,要么是无意义的。