您现在的位置是:首页 > 网站建设网站建设

DEDE列表页中单条文章如何调用TAG或者关键字? 如下图所示的样式

江湖快报网2022-12-24 10:20:42【网站建设】人已围观

简介1,首页,列表页和文章页调用所,的tag

{dede:tag row='8' getall='1' sort='month'} 

支持属性 

row|30   行数 

sort|new   排序 

getall|0 调用类型 

可以查

1,首页,列表页和文章页调用所,的tag

{dede:tag row='8' getall='1' sort='month'} 

支持属性 

row|30   行数 

sort|new   排序 

getall|0 调用类型 

可以查看/include/taglib/tag.lib.php 

2,列表页调用每一篇文章的tag

[field:id runphp=yes] 
    $tsql = new DedeSql(false); 

    $tags = ''; 

    $tsql->SetQuery(Select i.tag From tf_taglist t left join tf_tagindex i on i.id=t.tid where t.aid='@me'); 

    $tsql->Execute('t'); 

    while($row = $tsql->GetArray('t',MYSQL_ASSOC)){ 
    $tags .= <a href='/tags.php?/.urlencode($row['tag']).'>.$row['tag'].</a>;    

    } 

    @me=$tags; 

[/field:id]  

3,文章页调用该篇正文的tag

{dede:field.tags/}

默认的TAG是无链接的,如果你希望该tag带上链接,则打开include/common.func.php ,大约755行,找到

//获得某文档的所有tag

function GetTags($aid)

{

global $dsql;

$tags = '';

$query = Select tag From `tf_taglist` where aid='$aid' ;

$dsql->Execute('tag',$query);

while($row = $dsql->GetArray('tag'))

{

 $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);

}

return $tags;

}

修改为

//获得某文档的所有tag 

function GetTags($aid) 



    global $dsql; 

    $tags = ''; 

    $query = Select tag From `dede_taglist` where aid='$aid' ; 

    $dsql->Execute('tag',$query); 

    while($row = $dsql->GetArray('tag')) 

    { 
    $tags.= ($tags=='' ? <a 
href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>
: ','.<a href=/tags.php?/{$row['tag']}
target=_blank>{$row['tag']}</a>); 

    } 

    return $tags; 

}  



但是升级到5.7版本之后,发现不能所在标签不能使用。

按照官方的参考文章 [field:id function='GetTags(@me)' /] 可以在文章列表页调用文章的TAG词。

且调用出来的都是没有超链接的文字。于是修改include/helpers/archive.helper.php中GetTags函数,



$tags .= ($tags=='' ? <a
href='/tags.php?/.urlencode($row['tag']).'>.$row['tag'].</a>
: ','.<a
href='/tags.php?/.urlencode($row['tag']).'>.$row['tag'].</a>);



为此成功添加了标签。不过由于GetTags函数在全局范围中引用的比较频繁,添加之后会造成编辑文章的时候TAG字段出现html代码。

因此,在include/helpers/archive.helper.php 中新建GetTags_list函数,

function GetTags_list($aid)

   {
    global $dsql;
    $tags = '';
    $query = SELECT tag FROM `#@__taglist` WHERE aid='$aid' ;
    $dsql->Execute('tag',$query);
    while($row = $dsql->GetArray('tag'))
    {
    $tags
.= ($tags=='' ? <a
href='/tags.php?/.urlencode($row['tag']).'>.$row['tag'].</a>
: ','.<a
href='/tags.php?/.urlencode($row['tag']).'>.$row['tag'].</a>);

  
    }
    return $tags;

   }



在列表页模板使用[field:id function='GetTags_list(@me)' /] 调用。



至此,问题解决

Tags:单条   下图   调用

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐