织梦不包含当前文章

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 织梦建站 正文

在织梦的列表查询标签 {dede:arclist} 中,使用 idnotarcidnot 参数来排除当前文章的ID。

织梦不包含当前文章
(图片来源网络,侵删)

下面我将分几种常见场景,为您提供详细的代码和解释。


在文章页(article_article.htm)中调用“相关文章”

这是最典型的应用场景,你希望在当前文章的页面上,展示其他一些相关文章,但绝不能包含当前文章本身。

方法:使用 {dede:arclist}

  1. 获取当前文章ID: 在文章内容页模板 article_article.htm 中,织梦会自动生成一个变量 aid,它就是当前文章的ID,我们可以直接使用这个变量。

    织梦不包含当前文章
    (图片来源网络,侵删)
  2. 编写织梦标签: 在模板中你希望显示相关文章的位置,插入以下代码:

    {dede:arclist row='8' titlelen='30' idnot='~aid~'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    </li>
    {/dede:arclist}
  3. 代码解析

    • row='8':表示调用8篇文章。
    • titlelen='30'最多显示30个字符。
    • idnot='~aid~'这是关键!
      • idnotarclist 标签的一个属性,用于排除指定的文章ID。
      • ~aid~ 是织梦的变量替换语法。aid 是当前文章的ID, 是分隔符,最终织梦会将其解析为 idnot='当前文章的ID',从而在查询时过滤掉这篇文章。

在列表页(list_*.htm)中调用排除当前文章的列表

假设你在列表页上,除了显示常规的文章列表,还想在侧边栏或某个特定位置再调用一个列表,但这个列表要排除当前正在浏览的这篇文章。

方法:同样是使用 {dede:arclist} 标签,但需要获取当前文章ID

织梦不包含当前文章
(图片来源网络,侵删)
  1. 获取当前文章ID: 在列表页中,当前浏览的文章ID不能像在文章页那样直接通过 aid 获取,我们需要通过URL参数来获取,URL的格式通常是 https://www.yoursite.com/list.php?tid=栏目ID&aid=文章ID。 我们可以使用织梦的 Get 函数来获取 aid 的值。

  2. 编写织梦标签

    {dede:arclist row='5' titlelen='25' idnot='~Get("aid")~'}
    <div class="other-article">
        <h3>其他文章</h3>
        <ul>
            <li>
                <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            </li>
        </ul>
    </div>
    {/dede:arclist}
  3. 代码解析

    • idnot='~Get("aid")~':这里我们使用了 Get("aid") 来从URL中获取 aid 这个参数的值,并用 包裹起来,实现排除当前文章的效果。

制作“上一篇”和“下一篇”链接

这个功能虽然也排除当前文章,但通常使用专门的标签 {dede:prenext/} 来实现,它比 arclist 更高效、更直接。

方法:使用 {dede:prenext/} 页模板 article_article.htm 中,找到合适的位置(通常在文章内容的末尾),插入以下代码:

<div class="prenext">
    <div class="pre">
        {dede:prenext get='pre'/}
    </div>
    <div class="next">
        {dede:prenext get='next'/}
    </div>
</div>

代码解析

  • {dede:prenext/} 标签会自动获取当前文章的上一篇和下一篇。
  • get='pre':获取上一篇。
  • get='next':获取下一篇。
  • 这个标签天然就排除了当前文章,并且会自动处理“已经是第一篇”或“已经是最后一篇”的情况(此时会显示“没有了”或为空)。

总结与注意事项

场景 推荐标签 关键参数/方法 说明
文章页相关文章 {dede:arclist} idnot='~aid~' 最灵活,可以自定义数量、排序等。
列表页排除当前文章 {dede:arclist} idnot='~Get("aid")~' 适用于在列表页中调用一个排除当前文章的子列表。
上一篇/下一篇 {dede:prenext/} get='pre' / get='next' 专用标签,性能更好,专为上下文导航设计。

重要提示:

  • 变量大小写:织梦的变量(如 aid)通常对大小写不敏感,但养成良好习惯,保持使用小写。
  • 模板缓存:修改模板文件后,如果看不到效果,请记得清除织梦的缓存,可以在后台的“系统” -> “一键更新网站” -> “更新缓存”中操作。
  • 栏目ID限制:如果只想在当前栏目内调用,可以在 arclist 标签中加入 typeid='当前栏目ID' 参数,当前栏目ID可以用 ~typeid~ 获取。

希望这些详细的解释和代码能帮助您解决问题!

-- 展开阅读全文 --
头像
dede如何实现文件下载功能?
« 上一篇 04-26
织梦网站为何总被挂马?
下一篇 » 04-26
取消
微信二维码
支付宝二维码