找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 430|回复: 0
打印 上一主题 下一主题

织梦dedecms获取当前栏目路径及栏目名称的方法

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-13 20:30:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

标签如下:
当前:
复制代码代码如下:
{dede:type}
[url= [field:typelink  /] ] [field:typename/] [/url]
{/dede:type}
因为{dede:field  name='arcurl'/} 这个获取当前页面路径的标签只能在内容页使用,栏目页没有效果的。所以在栏目页想获取当前栏目的路径及名称的话,就要用上面这个标签。
而获取网站所有栏目名称及路径列表的话,就要用到另一个标签: {dede:channel},调用方式如下:
所有栏目
复制代码代码如下:

{dede:channel  type='top' row='11'}
[url=[field:typelink/]][field:typename/][/url]
{/dede:channel}

织梦dedeCMS网站栏目页获取当前栏目的顶级栏目名称的标签教程:
我们在使用做一些网站的时候,时常会碰到需要调用当前栏目的顶级栏目名称的时候,织梦默认{dede:field name='typename' /}  可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。
下面拓展出一个方法来实现这个效果、:
在include/common.func.php的最下方加入:
内容来自
顶级栏目名
复制代码代码如下:
function GetTopTypename($id)
{
    global $dsql;
     $row = $dsql->GetOne("SELECT typename,topid FROM jiemou_arctype WHERE id=  $id");
    if ($row['topid'] == '0')
    {
        return  $row['typename'];
    }
    else
    {
        $row1 =  $dsql->GetOne("SELECT typename FROM jiemou_arctype WHERE id=  $row[topid]");
        return $row1['typename'];
    }
}
在文章页或者栏目列表页调用时,在所要调用栏目名称的位置加上下面这行代码即可实现。 内容来自
{dede:field name='typeid' function="GetTopTypename(@me)" /} 内容来自
在文章页中用下面这个方法来调用
获取当前栏目的父栏目
写成一个函数放入include/extend.func.php文件中
复制代码代码如下:
function GetParentCategoryNameByID($CurrentID){
$tsql = new DedeSql(false);
$typelink2 = '';
$tsql->SetQuery("Select i.typedir,i.typename From zz5unet_arctype t left join zz5unet_arctype i on i.id=t.reid where t.id='$CurrentID'");
$tsql->Execute('t');   
while($row = $tsql->GetArray('t',MYSQL_ASSOC))  
{
$typelink2 .= $row['typename'];  
}
return $typelink2;
}
调用方法:{dede:field name='id' function='GetParentCategoryNameByID(@me)' /}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户反馈
客户端