本解决方案是在DEDECMS5.7中测试过的,当文档设置为跳转并添加跳转网址后如何不经过中转页而直接可以用标签arcurl在底层模板中显示redirecturl跳转网址。

找到dedecms文件:/include/helpers/channelunit.helper.php中,大概在第159行处开始修改:

查找:if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)

修改前:

if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)
{
	//动态文章
	if($cfg_rewrite == 'Y')
	{
		return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
	}
	else
	{
		return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid";
	}
}

替换为:

//--------跳转网址不经过中间页直接显示----------------begin---by xueleilei
global $dsql;
$flag = $dsql->GetOne("select * from `ig_archives` where id = $aid;");
$flag = $flag['flag'];
if(preg_match("/j/",$flag)){

	$addontable = $dsql->GetOne("select art.id,cht.addtable from `ig_arctype` art left join `ig_channeltype` cht on art.channeltype = cht.id where art.id = $typeid");
	$addtable = $addontable['addtable'];
	$GoUrl = $dsql->GetOne("select redirecturl from $addtable where aid = $aid");
	$redirecturl = $GoUrl['redirecturl'];
	if($redirecturl != ''){
	return $redirecturl;
	}
}
//--------跳转网址不经过中间页直接显示----------------end---by xueleilei
//动态文章
if($cfg_rewrite == 'Y')
{
	return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
}
else
{
	return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid";
}
}

修改完毕后,重新更新首页和列表页,跳转网址的文章的网址将直接显示为跳转后的网址,而不会在显示为view.php?aid=XX 的跳转了。

  哈尔滨品用软件有限公司致力于为哈尔滨的中小企业制作大气、美观的优秀网站,并且能够搭建符合百度排名规范的网站基底,使您的网站无需额外费用,即可稳步提升排名至首页。欢迎体验最佳的哈尔滨网站建设