页如何实现列表翻页调用?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 DEDE建站 正文
  1. 使用DedeCMS自带的GetArcList标签(推荐,最灵活)
  2. 使用{dede:likearticle}标签(最简单,用于相关文章)

场景分析

我们要明确你想要的“列表翻页”是什么:

dede内容页调用列表翻页
(图片来源网络,侵删)
  • 场景A:上一篇/下一篇:这是最简单的“翻页”,通常不需要复杂的列表。
  • 场景B:相关文章列表:在文章页下方显示一个包含N篇相关文章的列表,并且这个列表本身可以分页,第一页显示5篇,第二页显示另外5篇,以此类推。
  • 场景C:当前栏目下的文章列表:在文章页显示当前栏目的其他文章列表,并支持分页。

下面我们主要针对场景B(相关文章列表分页)场景C(栏目文章列表分页)进行详细说明,因为“上一篇/下一篇”有专门的标签 {dede:pre/}{dede:next/},相对简单。


使用 GetArcList 标签(最强大、最灵活)

GetArcList 是一个万能的列表调用标签,它可以在任何地方(包括内容页)调用一个文章列表,并且完美支持分页。

适用场景:

相关文章列表分页、当前栏目文章列表分页等。

核心步骤:

  1. 页模板中添加列表容器和分页代码。
  2. 使用 GetArcList 调用列表。
  3. 在列表循环外,添加分页代码 {dede:pagelist listitem='index,pre,next,end' listsize='5'/}

示例:实现“相关文章列表分页”

假设你想在文章内容页 article_article.htm 中,调用一个“相关文章”列表,每页显示5条,并且可以翻页。

dede内容页调用列表翻页
(图片来源网络,侵删)

打开你的内容页模板文件 通常位于 /templets/default/article_article.htm

在合适的位置(比如文章底部)添加以下代码:

<div class="related-article-list">
    <h3>相关文章</h3>
    <!-- 列表内容开始 -->
    <ul>
        {dede:arclist pagesize='5'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <span class="date">([field:pubdate function="MyDate('Y-m-d', @me)"/])</span>
        </li>
        {/dede:arclist}
    </ul>
    <!-- 列表内容结束 -->
    <!-- 分页代码开始 -->
    <div class="related-page">
        {dede:pagelist listitem='index,pre,next,end' listsize='5'/}
    </div>
    <!-- 分页代码结束 -->
</div>

代码解释

  • {dede:arclist pagesize='5'}:

    dede内容页调用列表翻页
    (图片来源网络,侵删)
    • pagesize='5':设置每页显示的文章数量,这是实现分页的关键。
    • arclist 默认就是调用列表,在内容页里使用时,它会自动获取当前页码,并返回对应页的数据,你不需要手动传递 pageno 参数。
    • 你可以添加其他 arclist 的属性来控制调用内容,
      • typeid='0': 调用所有栏目,如果只想调用当前栏目,可以留空或使用 typeid='self'
      • row='10': 这里会被 pagesize 覆盖,所以可以不写。
      • titlelen='30': 标题长度。
      • orderby='pubdate': 按发布时间排序。
  • {dede:pagelist ...}:

    • 这个标签必须放在 {dede:arclist} 循环外面
    • listitem='index,pre,next,end':定义分页显示哪些元素。
      • index: 首页
      • pre: 上一页
      • next: 下一页
      • end: 末页
    • listsize='5':显示的页码数量(不包括首页、末页等)。

后台设置 确保你的后台开启了“使用arclist标签调用分页页”选项。 路径:系统 -> 系统基本参数 -> 其他选项 -> “使用arclist标签调用分页页”,选择“是”。


使用 {dede:likearticle} 标签(最简单,专用)

{dede:likearticle} 是DedeCMS专门用于在内容页调用“相关文章”的标签,它本身就内置了分页功能。

适用场景:

仅用于调用“相关文章”并分页。

核心步骤:页模板中使用 {dede:likearticle}
  1. 在标签循环外添加 {dede:pagelist}

示例:使用 {dede:likearticle} 实现相关文章分页

页模板文件 article_article.htm

在合适位置添加以下代码:

<div class="like-article-list">
    <h3>猜你喜欢</h3>
    <!-- 相关文章列表开始 -->
    <ul>
        {dede:likearticle pagesize='5' row='10'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
        </li>
        {/dede:likearticle}
    </ul>
    <!-- 相关文章列表结束 -->
    <!-- 分页代码开始 -->
    <div class="like-page">
        {dede:pagelist listitem='pre,next' listsize='3'/}
    </div>
    <!-- 分页代码结束 -->
</div>

代码解释

  • {dede:likearticle pagesize='5' row='10'}:

    • pagesize='5':设置每页显示的文章数量,这是分页的关键。
    • row='10':总共要查询的文章数量,你设置了 row='20'pagesize='5',那么就会分 20 / 5 = 4 页。
    • 这个标签会自动根据当前文章的标题、关键词等信息来查找相关文章。
  • {dede:pagelist ...}:

    • 同样,必须放在 {dede:likearticle} 循环外面
    • 这里我只显示了 pre,next (上一页/下一页),你可以根据需要添加 index,end 等。

总结与对比

特性 GetArcList (方法一) LikeArticle (方法二)
灵活性 极高,可以调用任何符合条件的文章列表,支持所有arclist的参数。 较低,专门用于“相关文章”,调用逻辑固定。
适用场景 相关文章、栏目文章、自定义列表等任何需要列表分页的场景。 仅限“相关文章”列表分页。
使用难度 稍高,需要了解arclist的参数。 非常简单,参数少,易于上手。
性能 性能良好,但查询条件复杂时可能略慢。 性能较好,有专门的优化。

推荐选择:

  • 如果你的需求就是“相关文章”,并且不需要复杂的筛选条件,直接使用 {dede:likearticle},代码最简洁。
  • 如果你的需求更复杂,比如调用“当前栏目的其他文章”,或者需要自定义排序、筛选等,那么必须使用 GetArcList,它的功能更强大。

希望这个详细的教程能帮到你!

-- 展开阅读全文 --
头像
dede js判断当前页面
« 上一篇 今天
织梦cms调用栏目图片
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码