巅峰霸主 > 前端设计 > 织梦教程 > dedecms标签获取当前页面URL链接(首页/列表页/列表分页/内容页/内容页分页)

dedecms标签获取当前页面URL链接(首页/列表页/列表分页/内容页/内容页分页)

时间:2020-06-02 11:30:13 来源:织梦系统 作者:dedehtml 点击:
摘要:dedecms系统获得当前页面的URL,支持动态、静态和伪静态,对于文章内容分页,列表分页、列表页等都可以,主要用于SEO优化中获得当前页面的链接……

获取当前链接url网上有很多教程,但是要么只支持动态下正常使用,要么只支持内容页使用,今天我来做个前无古人后无来者的

获得当前页面URL链接的需求

  • 一个标签,可用于任意模板下使用

  • 支持动态/静态/伪静态 输出当前url

  • 支持首页/列表页/列表分页/内容页/内容页分页

首页

动态栏目页/栏目分页

动态内容页/内容页分页

静态栏目页/栏目分页

静态内容页/内容分页

实现教程

1、获取内容页当前Url 或者 内容页分页Url

打开 /include/arc.archives.class.php 找到

$this->NowPage = $pageNo;

在它上面加入

$ArcArr = GetOneArchive($this->ArcID);$arcurl = $ArcArr['arcurl'];

继续找到

$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];

在它上面加入

if($ismake==1){	if($pageNo>1)
	{		$pagebreak = str_replace($this->NameFirst, $this->NameFirst."_".$pageNo, $arcurl);
	}
}
else
{	if($pageNo>1) $pagebreak = "&pageno=".$pageNo;	if($cfg_rewrite == 'Y')
	{		$pagebreak = str_replace(".php?aid=", "-", $arcurl);		$pagebreak =  preg_replace("#&pageno=(d+)#i", '-.html', $pagebreak);
	}	$pagebreak = $arcurl.$pagebreak;}

继续找到

//解析模板

在它上面加入

$this->Fields['itemcururl'] = isset($pagebreak) ? $pagebreak : $arcurl;

2、获取列表页当前Url 或者 列表页分页Url

打开 /include/arc.listview.class.php 找到

//替换第二页后的内容

在它上面加入

$this->Fields['itemcururl'] = $this->GetItemsCurUrl($PageNo);

继续找到

function GetCurUrl()

在它上面加入

function GetItemsCurUrl($PageNo){	global $cfg_basehost;	if($this->TypeLink->TypeInfos['isdefault']==-1)
	{
		$purl = $this->GetCurUrl();		if($cfg_rewrite == 'Y')
		{
			$nowurls = preg_replace("/-/", ".php?", $purl);
			$nowurls = explode("?", $nowurls);
			$purl = $nowurls[0];
		}		if($PageNo==1)
		{
			$geturl = "tid=".$this->TypeID;
			$purl .= '?'.$geturl;
		}		else
		{
			$geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
			$purl .= '?'.$geturl."PageNo=".$PageNo;
		}
	}	else
	{
		$tnamerule = $this->GetMakeFileRule($this->Fields['id'],"list",$this->Fields['typedir'],$this->Fields['defaultname'],$this->Fields['namerule2']);
		$tnamerule = preg_replace("/^(.*)//", '', $tnamerule);
		$cfg_basehost = preg_replace('#/$#','',$cfg_basehost);
		$tnamerule = MfTypedir($this->Fields['typedir']).'/'.$tnamerule;		if($PageNo==1)
		{
			$purl = MfTypedir($this->Fields['typedir']).'/';
		}		else
		{
			$purl = str_replace("{page}",$PageNo,$tnamerule);
		}
	}	return $purl;
}

还需要打开 /include/arc.partview.class.php 找到

$this->Fields['title'] = $this->TypeLink->GetPositionLink(false);

在它下面加入

$this->Fields['itemcururl'] = $this->TypeLink->GetOneTypeUrl($this->TypeLink->TypeInfos);

前台模板标签调用

①网站后台没有开启使用绝对URL,即动态或相对路径的网站使用下面代码在模板中调用当前页面url链接:

{dede:field.itemcururl runphp=yes}global $cfg_basehost;@me = (@me == '' ? "{$cfg_basehost}" : "{$cfg_basehost}@me");{/dede:field.itemcururl}

②如果网站后台开启了“使用绝对路径”,使用下面这个标签调用当前页面url链接,列表和文章详情页全部都一样:

{dede:field name='itemcururl'/}


(责任编辑:陆柏熺)
相关分类: dedecms url
评价:
用户名: 验证码: 看不清?点击更换

相关内容推荐



关注站长自媒体 获取更多优质内容

2019-2020 ©巅峰霸主网 京ICP备12023415号-2
返回顶部