织梦上一篇下一篇链接如何正确设置?

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

基础用法(最常用)

这是最直接、最常用的方法,直接在需要显示链接的地方插入以下代码:

织梦上一篇下一篇链接
(图片来源网络,侵删)
{dede:prenext get='pre'/}
{dede:prenext get='next'/}
  • {dede:prenext get='pre'}:用于显示上一篇文章的链接。
  • {dede:prenext get='next'}:用于显示下一篇文章的链接。

示例:

在文章详情页模板 article_article.htm 中,你通常会在文章内容的下方,评论区的上方添加这两个标签,一个常见的布局如下:

<div class="article-content">
    {dede:field.body/}
</div>
<div class="prenext">
    <div class="pre">
        {dede:prenext get='pre'/}
    </div>
    <div class="next">
        {dede:prenext get='next'/}
    </div>
</div>
<div class="pl">
    <!-- 评论区域代码 -->
</div>

默认效果: 默认情况下,{dede:prenext} 标签会输出类似这样的HTML结构: 上一篇:<a href="/article/123.html">上一篇文章的标题</a> 下一篇:<a href="/article/125.html">下一篇文章的标题</a>


自定义样式和文本

默认的样式可能不符合你的网站设计,你可以通过修改标签的属性来自定义链接的文本和样式。

织梦上一篇下一篇链接
(图片来源网络,侵删)

常用属性: len`:链接标题的长度(字符数)。

  • infolen:链接简介的长度(字符数)。
  • text:自定义链接前显示的文本。

示例:

<!-- 自定义上一篇链接 -->
{dede:prenext get='pre' titlelen='30' text='上一篇:'/}
<!-- 自定义下一篇链接 -->
{dede:prenext get='next' titlelen='30' text='下一篇:'/}

更灵活的自定义(推荐): 如果你想要完全控制HTML结构和样式,不使用默认的输出,可以使用 field 标签结合 arcID 来获取上一篇和下一篇的标题和链接,然后自己编写HTML。

<div class="prenext">
    <!-- 上一篇 -->
    <div class="pre">
        {dede:prenext get='pre' function='str_replace("上一篇:", "", @me)'/}
    </div>
    <!-- 下一篇 -->
    <div class="next">
        {dede:prenext get='next' function='str_replace("下一篇:", "", @me)'/}
    </div>
</div>

上面的代码通过 function 属性使用 str_replace 函数去掉了默认的 "上一篇:" 和 "下一篇:" 文本,然后你可以在CSS中为 .pre.next 类设计样式。


高级用法(获取更多信息)

有时候你可能不仅需要标题和链接,还需要获取上一篇/下一篇文章的发布时间、简介等信息,这时,你可以使用 {dede:pre next} 循环标签。

语法:

{dede:pre next='是,否,标题,时间'}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <span class="time">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    <p class="intro">[field:description function="cn_substr(@me, 100)"/]...</p>
{/dede:pre next}
  • 是,否,标题,时间:这部分是参数,用来控制显示哪些信息。
    • :显示链接([field:arcurl/])。
    • :不显示链接(这里通常用占位符)。
    • 显示文章标题([field:title/])。
    • 时间:显示发布时间([field:pubdate/])。

示例:

<div class="article-nav">
    <div class="nav-prev">
        <h4>上一篇</h4>
        {dede:pre next='是,否,标题,时间'}
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d', @me)"]</span>
        {/dede:pre next}
    </div>
    <div class="nav-next">
        <h4>下一篇</h4>
        {dede:pre next='是,否,标题,时间'}
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d', @me)"]</span>
        {/dede:pre next}
    </div>
</div>

常见问题与解决方案

问题:没有上一篇或下一篇时,显示特定文本(如“没有了”)

默认情况下,当没有上一篇或下一篇时,{dede:prenext} 标签会不显示任何内容,如果你想自定义这个提示,可以使用 if 条件判断。

方法:使用 {dede:field} 标签判断

<div class="prenext">
    <!-- 上一篇 -->
    <div class="pre">
        {dede:field name='pretitle'/}
        {dede:if '<a href=' is stripos(@me)}
            {dede:field name='pre'/}
        {else/}
            没有了
        {/dede:if}
    </div>
    <!-- 下一篇 -->
    <div class="next">
        {dede:field name='nexttitle'/}
        {dede:if '<a href=' is stripos(@me)}
            {dede:field name='next'/}
        {else/}
            没有了
        {/dede:if}
    </div>
</div>
  • {dede:field name='pretitle'}:获取上一篇标题(如果有,是带链接的;如果没有,是空字符串)。
  • {dede:if '<a href=' is stripos(@me)}:判断 @me(即上一篇标题的值)中是否包含 <a href=,如果包含,说明存在链接,则显示 {dede:field name='pre'};否则,显示“没有了”。

问题:上一篇/下一篇链接指向错误或无效

这通常由以下原因造成:

  • 文章未审核或未生成HTML:确保文章状态为“审核通过”,并且已经通过“更新HTML”或“一键生成”生成了静态页面。
  • 栏目设置了“仅动态浏览”:如果该栏目被设置为“仅动态浏览”,那么上一篇/下一篇链接可能会失效,请检查栏目的“高级选项”。
  • 自定义了文章URL规则:如果你修改了文章的URL规则,请确保系统已经重新生成了所有相关页面的链接。
  • 模板标签错误:检查模板中是否有拼写错误。

需求 推荐代码 说明
最简单用法 {dede:prenext get='pre'}
{dede:prenext get='next'}
直接调用,输出带默认文本的链接。
自定义文本 {dede:prenext get='pre' text='上一篇:'} 修改链接前显示的文字。
获取更多信息 {dede:pre next='是,否,标题,时间'}...{/dede:pre next} 灵活获取标题、时间、链接等信息,自定义HTML结构。
处理“没有”的情况 结合 {dede:if}{dede:field name='pretitle'} 判断。 在没有上一篇/下一篇时显示自定义提示。

对于绝大多数网站,使用第一种基础用法就足够了,如果需要更精细的控制,可以尝试第三种高级用法,希望这份详细的指南能帮到你!

-- 展开阅读全文 --
头像
dede后台登录后自动弹回,如何解决?
« 上一篇 今天
C语言中char转int的具体方法是什么?
下一篇 » 今天

相关文章

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

目录[+]