标签不能嵌套的2种解决方法
如下标签:
代码如下:
{dede:list pagesize='6'}
<li><a href="/plus/jobs.php?lang={dede:global.user_lang/}&jobid=[field:id/]">[field:jobname/]</a></li>
{/dede:list}
<li><a href="/plus/jobs.php?lang={dede:global.user_lang/}&jobid=[field:id/]">[field:jobname/]</a></li>
{/dede:list}
当运行的时候,发现{dede:global.user_lang/}居然原封不动的被展示了出来而未被解析,我很纳闷,于是去网上搜了有关DEDECMS不能嵌套标签的解决办法,最后找出了两种解决方案。
方案一:
代码如下:
<!–在标签之前,先用JS获取标签中需要得到的内容–>
<script type="text/javascript">
function get_user_lang(){
document.write("{dede:global.user_lang/}");
}
</script>
{dede:list pagesize='6'}
<script type="text/javascript">
function get_user_lang(){
document.write("{dede:global.user_lang/}");
}
</script>
{dede:list pagesize='6'}
<!–然后在标签中调用该JS函数把内容给显示出来–>
<li><a href="/plus/jobs.php?lang=<script type="text/javascript">get_user_lang();</script>&jobid=[field:id/]">[field:jobname/]</a></li>
{/dede:list}
<li><a href="/plus/jobs.php?lang=<script type="text/javascript">get_user_lang();</script>&jobid=[field:id/]">[field:jobname/]</a></li>
{/dede:list}
显然,这种办法肯定不是我要的,因为该方法不仅复杂,而且不容易维护,更重要的是与我尽量的坚持行为和结构分离的习惯相悖,于是又在网上搜了搜,结果发现了更加方便的解决办法,即把{dede:global.user_lang/}更改成[field:global.user_lang/]。
方案二:
代码如下:
{dede:list pagesize='6'}
<li><a href="/plus/jobs.php?lang=[field:global.user_lang/]&jobid=[field:id/]">[field:jobname/]</a></li>
{/dede:list}
<li><a href="/plus/jobs.php?lang=[field:global.user_lang/]&jobid=[field:id/]">[field:jobname/]</a></li>
{/dede:list}