有的时候我们的织梦网站列表页,或是首页,需要在arclist标签里面加上当前文章的标签。
如何实现呢?
用织梦提供的tag标签:
{dede:tag row='10' getall='1' sort='month'}
<li><a href='[field:link/]'>[field:tag /]</a></li>
{/dede:tag}
这个标签无法实现,因为,无论是列表还是首页,调用出来的文章都是循环的,即在{dede:list}{/dede:list} 或{dede:arclist }{/dede:arclist}
在这里面是无法嵌套的。
下面是错误的:
{dede:arclist}
{dede:tag row='10' getall='1' sort='month'}
<li><a href='[field:link/]'>[field:tag /]</a></li>
{/dede:tag}
{/dede:arclist}
错误原因是标签arclist不能嵌套另外的标签。
解决方法:
使用织梦提供的php接口:[field:id runphp=yes] ......[/field:id]
完整的标签是:
{dede:arclist} <p>标签 : [field:id runphp=yes] global $dsql; $tags = ''; $query = "SELECT tag FROM `dede_taglist` WHERE aid='@me' "; $dsql->Execute('tag',$query); while($row = $dsql->GetArray('tag')) { $tags .= "<a href='/tags.php?/".urlencode($row['tag'])."/'>".$row['tag']."</a>, "; } @me=$tags; [/field:id]</p> {/dede:arclist} |
下面是伪静态,可以不用看,自己测试一下。
还有是我自己弄的伪静态那个 调用了两个字段
[field:id runphp=yes]global $dsql;$tags = '';$query = "SELECT tid,tag FROM `dede_taglist` WHERE aid='@me' ";$dsql->Execute('tid,tag',$query);while($row = $dsql->GetArray('tid,tag')){$tags .= "<a href='/t-".urlencode($row['tid']).".html'>".$row['tag']."</a>";}@me=$tags;[/field:id]
总结:
如果你会php,那么,通过织梦提供的runphp=yes就可以调用很多不能嵌套的问题,这个功能非常有用,当然,一般的人也用不到这个,对于仿站,或是做二次开发也许会用到。