织梦 Dedecms 默认的文章上一页下一页只能调用文章标题和链接,在做模板的时候能实现的样式十分有限,有时我们需要获取上一篇文章封面缩微图,这样默认的调用标签就显得很 LOW 了。并且在没有上一篇或者下一篇文章的时候 Dedecms 还会输出一个“没有了”的文字在对应的位置,看起来很碍眼。今天来分享一个 Dedecms 的二次开发方案,来实现文章上下篇的美化。
Dedecms 二次开发美化上一篇 下一篇具体执行步骤,打开/include/arc.archives.class.PHP 搜索下面内容
else if($ctag->Getname()=='fIEldList')
在他的上面加入下面代码:
else if($ctag->Getname()=='prenextdiy')
{
$innertext = trim($ctag->GetInnerText()); if($innertext)
{
$get = $ctag->GetAtt('get');
$diys['diy'] = $this->GetPreNext('diy');
$revalue = '';
$dtp2 = new DedeTagParse();
$dtp2->SetnameSpace('fIEld','[',']');
$dtp2->LoadSource($innertext); foreach($diys as $row)
{ foreach($dtp2->CTags as $tID=>$ctag2)
{ if(isset($row[$get][$ctag2->Getname()]))
{
$dtp2->Assign($tID,$row[$get][$ctag2->Getname()]);
}
}
$revalue .= $dtp2->GetResult();
} if($row[$get]['ID']) $this->dtp->Assign($i,$revalue);
}
}
$this->PreNext['pre'] = "上一篇:<a href='$m@R_502_6862@'>{$preRow['Title']}</a> ";
$preRow['litpic'] = (empty($preRow['litpic'])) ? $GLOBALS['cfg_CMSpath'].'/images/defaultpic.gif' : $preRow['litpic'];
$this->PreNext['diy']['pre']['ID'] = $preRow['ID'];
$this->PreNext['diy']['pre']['arcurl'] = $m@R_502_6862@;
$this->PreNext['diy']['pre']['Title'] = $preRow['Title'];
$this->PreNext['diy']['pre']['litpic'] = $preRow['litpic'];
$this->PreNext['diy']['pre']['pubdate'] = $preRow['senddate'];
$this->PreNext['next'] = "下一篇:<a href='$m@R_502_6862@'>{$nextRow['Title']}</a> ";
$nextRow['litpic'] = (empty($nextRow['litpic'])) ? $GLOBALS['cfg_CMSpath'].'/images/defaultpic.gif' : $nextRow['litpic'];
$this->PreNext['diy']['next']['ID'] = $nextRow['ID'];
$this->PreNext['diy']['next']['arcurl'] = $m@R_502_6862@;
$this->PreNext['diy']['next']['Title'] = $nextRow['Title'];
$this->PreNext['diy']['next']['litpic'] = $nextRow['litpic'];
$this->PreNext['diy']['next']['pubdate'] = $nextRow['senddate'];
if($gtype=='pre')
在其前面插入:
if($gtype=='diy')
{ return $this->PreNext['diy'];
}
至此大功告成。
调用方法:
上一篇:
{dede:prenextdiy get='pre'}
<li><a href="[fIEld:arcurl/]"><img src="[fIEld:litpic/]" wIDth="50" height="50"></a></li>
<p><a href="[fIEld:arcurl/]">[fIEld:Title/]</a><span>时间:[fIEld:pubdate function="MyDate('Y-m-d',@me)"/]</span></p>
{/dede:prenextdiy}
下一篇:
{dede:prenextdiy get='next'}
<li><a href="[fIEld:arcurl/]"><img src="[fIEld:litpic/]" wIDth="50" height="50"></a></li>
<p><a href="[fIEld:arcurl/]">[fIEld:Title/]</a><span>时间:[fIEld:pubdate function="MyDate('Y-m-d',@me)"/]</span></p>
{/dede:prenextdiy}
这样,有了文字、图片、时间、链接。想美化成什么样子都可以了!并且不同的组合对网站的 SEO 优化也是很有帮助的。
并且,最关键的是这种织梦 CMS 二次开发的方案非常优秀,因为原理是额外添加了一个 diy 的标签,所以完全不损伤系统原有的功能,如有需求,依旧可以使用织梦系统原有的标签进行上下篇的调用。
查看演示
咨询汉化
此链接为英文原版演示地址,由于英文演示针对的是境外用户,机房位于境外国内访问可能比较缓慢如果长时间未显示可以尝试刷新几次。
专业提供wordpress主题安装、深度汉化、加速优化等服务,详询在线客服!