本文主要是介绍在sql标签与其他不能调用URL的标签中调用静态URL。
首先介绍一下常规的方式:
在栏目类标签中调用栏目地址:
- [field:typeurl/]:未开绝对网址前是相对路径,如:/xxx/aaa/,开启绝对网址后的路径:https://www.xuexin365.com/xxx/aaa/
- [field:typelink/] 等于
<a href="[field:typeurl/]">[field:typename/]</a>
,开启绝对之后同上 - {dede:type row=1}[field:typelink /]{/dede:type} 当前栏目url
- {dede:type typeid=‘指定栏目ID’}[field:typelink /]{/dede:type} 调用某个栏目的url
- 在嵌套标签中第一层调用栏目地址有点特殊:
{dede:field name='typeurl'/}
在文章类标签中调用文章地址:
- [field:arcurl/] url形式:/xxx/123.html,开启绝对之后同上
- [field:textlink/] 等于
<a href="[field:arcurl/]">[field:title/]</a>
,开启绝对之后同上 - {dede:arclist idlist=‘指定文章ID’ limit=‘0,1’}[field:arcurl /]{/dede:arclist} 调用某个文章的url
好了接下来是一些意想不到,但是非常有用的获取url方式(以下方式均适用在{dede:sql}
)
栏目类:
[field:typedir function=(substr("@me",9))/]
[field:id function=IReturnURL(@me)/] 这个标签强烈推荐,灵活性很高,并且不受局限性,下面会有举例说明
文章类:
[field:id runphp=‘yes’]$url=GetOneArchive(@me);@me=$url[‘arcurl’];[/field:id]
通用,可调用文章URL和栏目URL
[field:array runphp=‘yes’]@me=GetOneTypeUrlA(@me);[/field:array]
关于 [field:id function=IReturnURL(@me)/] 的说明:
将以下代码加在include/common.func.php的54行
/*
**$ID 要组装url的id
**$State 选填,开启绝对网址后将绝对网址换为系统基本参数中的cfg_waphost的值,cfg_waphost需要手动加,1为启用
*/
function IReturnURL($ID,$State){
global $dsql;
$row = $dsql->GetOne("SELECT * FROM dede_arctype where id = {$ID}"); //执行sql语句
$cfg_waphost = isset($GLOBALS['cfg_waphost']) ? $GLOBALS['cfg_waphost'] :$GLOBALS['cfg_basehost'];
//1为启用
$siteurl = $State == 1 ? $cfg_waphost : $row['siteurl'];
//该id的dede_arctype这些数据进行组装成field:arcurl,GetTypeUrl
$link = GetTypeUrl($row['typeid'],MfTypedir($row['typedir']),$row['isdefault'],$row['defaultname'],$row['ispart'],$row['namerule2'],$row['moresite'],$siteurl,$row['sitepath']);
return $link;
}
[field:id function=IReturnURL(@me)/] 几个灵活栗子:
获取当前栏目上级id:{dede:field.reid function=IReturnURL(@me)/}
在任意标签中获取指定栏目url:[field:id function=IReturnURL('指定栏目URL')/]
也就是@me的值是多少,就获取对应(ID)的栏目URL
开启绝对地址后,二级域名中栏目URL的绝对域名改为当前二级域名,[field:id function=IReturnURL(@me,1)/]