自定义织梦DedeCMS上一篇下一篇调用标签并且修改样式

织梦 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='$mlink'>{$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'] = $mlink;

$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='$mlink'>{$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'] = $mlink;

$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主题安装、深度汉化、加速优化等服务,详询在线客服!

相关文章

文章浏览阅读483次。dedecms织梦频道模板中调用栏目分类并排...
文章浏览阅读284次。我们在用织梦建站的过程中,难免会遇到各...
文章浏览阅读152次。seo专题是seo优化必不可少的一环,对于网...
文章浏览阅读142次。在Dedecms中,在列表页调用文章摘要的方...
文章浏览阅读234次。织梦DedeCMS文章内容发布时可以选择“头...
文章浏览阅读701次。虽然织梦DedeCMS因为安全问题被人所诟病...