织梦网文章下一篇下一篇为何无alt属性?

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

织梦默认的文章上一篇/下一篇链接是纯文本链接,没有 alt 属性,要解决这个问题,你有以下几种方法,从推荐到备选排列:

织梦网文章下一篇下一篇没有alt
(图片来源网络,侵删)

修改核心文件(最直接、最彻底)

这是最直接的方法,可以让你完全控制链接的HTML结构,但请注意,修改核心文件意味着在下次织梦升级时,你需要重新修改这些文件。

操作步骤:

  1. 找到核心文件 打开织梦的根目录,找到并编辑以下文件: include/arc.archives.class.php

  2. 定位函数 在这个文件中,搜索 GetPreNext 函数,这个函数就是用来生成上一篇/下一篇链接的。

    织梦网文章下一篇下一篇没有alt
    (图片来源网络,侵删)
  3. 修改代码 你会找到类似下面这样的代码块(版本不同,代码行号可能略有差异):

    // 上一篇
    if($preRow)
    {
        $this->PreNext['pre'] = "上一篇:<a href='".$preRow['filename']."'>".$preRow['title']."</a> ";
    }
    // 下一篇
    if($nextRow)
    {
        $this->PreNext['next'] = "下一篇:<a href='".$nextRow['filename']."'>".$nextRow['title']."</a> ";
    }
  4. 添加 alt 属性 修改上述代码,为 <a> 标签添加 alt 属性。alt 的内容通常使用文章的标题,这有助于SEO。

    修改后的代码示例:

    // 上一篇
    if($preRow)
    {
        // 为链接添加 alt 属性,值为上一篇文章的标题
        $this->PreNext['pre'] = "上一篇:<a href='".$preRow['filename']."' alt='".$preRow['title']."'>".$preRow['title']."</a> ";
    }
    // 下一篇
    if($nextRow)
    {
        // 为链接添加 alt 属性,值为下一篇文章的标题
        $this->PreNext['next'] = "下一篇:<a href='".$nextRow['filename']."' alt='".$nextRow['title']."'>".$nextRow['title']."</a> ";
    }
  5. 保存文件 保存 arc.archives.class.php 文件。

  6. 更新网站缓存 登录你的织梦后台,进入“系统” -> “更新缓存”,点击“开始更新缓存”,这一步非常重要,否则修改可能不会立即生效。

刷新你的文章页面,查看源代码,你会发现上一篇/下一篇的链接已经成功添加了 alt 属性。


使用JavaScript动态添加(非侵入式)

如果你不想修改核心文件,可以使用JavaScript在页面加载时为这些链接动态添加 alt 属性,这种方法的好处是升级织梦时无需改动。

操作步骤:

  1. 在文章模板中添加JS代码 打开你的文章内容页模板文件,通常位于 templets/default/article_article.htm(根据你的模板路径可能不同)。

  2. 在底部添加JS脚本</body> 标签之前,添加以下 <script> 代码:

    <script>
    document.addEventListener('DOMContentLoaded', function() {
        // 获取所有class为"prenext"的元素下的a标签
        // 注意:请根据你实际的HTML结构调整选择器
        var preLink = document.querySelector('.prenext a.prenexta');
        var nextLink = document.querySelector('.prenext a.next');
        // 为上一篇链接添加alt属性
        if (preLink) {
            preLink.setAttribute('alt', '查看上一篇:' + preLink.innerText);
        }
        // 为下一篇链接添加alt属性
        if (nextLink) {
            nextLink.setAttribute('alt', '查看下一篇:' + nextLink.innerText);
        }
    });
    </script>

    说明:

    • document.querySelector 是用来查找元素的,你需要根据你模板中实际的HTML结构来修改选择器(如 .prenext a.prenexta)。
    • preLink.innerText 获取链接的文本内容(即文章标题),并将其作为 alt 属性的值。
  3. 保存模板文件 保存模板文件并重新生成文章页面。


修改模板文件(如果模板结构允许)

有些模板可能会将上一篇/下一篇的调用封装在自定义的标签里,或者其HTML结构比较清晰,你可以尝试直接修改模板文件。

操作步骤:

  1. 打开文章模板 同样,打开 templets/default/article_article.htm

  2. 查找调用代码 查找调用上一篇/下一篇的代码块,它看起来可能像这样:

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

    或者更直接的形式:

    <div class="prenext">
        上一篇:{dede:field name='pretitle' /}<br />
       下一篇:{dede:field name='nexttitle' /}
    </div>
  3. 修改为自定义形式 如果模板使用的是 {dede:prenext/} 标签,直接修改它来添加 alt 属性比较困难,因为它最终也是由 arc.archives.class.php 里的 GetPreNext 函数生成的,所以这种方法更适用于第二种情况。

    对于类似第三种情况的代码,你可以手动将其修改为:

    <div class="prenext">
        <?php
        $pretitle = $pre['title']; // 获取上一篇标题
        $nexttitle = $next['title']; // 获取下一篇标题
        if($pretitle) echo "上一篇:<a href='".$pre['filename']."' alt='".$pretitle."'>".$pretitle."</a><br />";
        if($nexttitle) echo "下一篇:<a href='".$next['filename']."' alt='".$nexttitle."'>".$nexttitle."</a>";
        ?>
    </div>

    这种方法需要你有一定的PHP基础,并且确保 $pre$next 这两个变量在你的模板作用域内是可用的。


总结与推荐

方法 优点 缺点 推荐度
修改核心文件 效果最好,最彻底,对SEO最友好 升级织梦时需重新修改 ★★★★★
使用JavaScript 非侵入式,不修改核心文件,升级无忧 依赖JS,可能被禁用,对SEO帮助不如直接HTML ★★★★☆
修改模板文件 可控性强,不修改核心文件 依赖模板结构,需要PHP知识,通用性差 ★★☆☆☆

对于绝大多数用户,强烈推荐使用方法一,虽然修改了核心文件,但这是最规范、最有效的方法,只要你做好记录,在升级时重新修改一下,就能一劳永逸地解决这个问题。

-- 展开阅读全文 --
头像
dede模板html网页href跳转如何实现?
« 上一篇 2025-12-10
C语言warningconvert是什么?如何解决?
下一篇 » 2025-12-10

相关文章

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

目录[+]