li标签中图片如何添加超链接?

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

页(article_article.htm)中的图片添加链接

这是最常见的情况,比如文章里有图片,点击图片想跳转到文章详情页本身。

织梦li标签里面图片加超链接
(图片来源网络,侵删)

方法1:使用织梦自带的功能(推荐,最简单)

织梦的文章编辑器(/include/dededitor/)本身就支持给图片添加超链接。

  1. 进入文章编辑器:在后台编辑文章时,点击编辑器工具栏上的 “插入/编辑超链接” 图标(通常是一个链条图标)。
  2. 选择图片并添加链接
    • 先选中文章中你想要添加链接的那张图片。
    • 然后点击“插入/编辑超链接”图标。
    • 在弹出的对话框中,链接地址 的输入框里,织梦通常会自动填入当前文章的链接 ({dede:field name='arcurl'/}),这正是我们想要的。
    • 确认无误后,点击“确定”。

这样,这张图片就被包裹在一个<a>标签里了,点击就会跳转到当前文章的详情页。

方法2:修改模板文件(如果方法1不可行或需要更灵活的控制)

如果你想在模板文件里直接控制,可以修改文章内容页模板 article_article.htm。 是通过 {dede:field name='body'/} 这个标签来输出的,我们不能直接修改这个标签,但可以在它外面套一个循环,并利用其底层模板(@me)来处理。

  1. 找到文章内容模板:在后台 -> 模板 -> 默认模板管理 -> 找到并打开 article_article.htm
  2. 调用标签:找到 {dede:field name='body'/} 这一行,将其替换为以下代码:
{dede:field name='body' function='htmlspecialchars(@me)'/}

注意:这里我们先对内容进行 htmlspecialchars 转义,防止内容中的 <> 等符号被错误解析,然后我们再用下面的代码来处理。

织梦li标签里面图片加超链接
(图片来源网络,侵删)
  1. 使用正则表达式替换(更推荐的方法):在 article_article.htm 文件的末尾(在 </body> 标签之前),添加一段JavaScript代码,用来在页面加载完成后自动为所有图片添加链接。
<script type="text/javascript">
    // 等待文档加载完成
    jQuery(document).ready(function($) {
        // 获取当前文章的URL
        var articleUrl = '{dede:field name='arcurl'/}';
        // 找到所有文章内容里的 img 标签
        // 注意:'.article-content' 是文章内容的CSS类名,你需要根据你的模板调整
        $('.article-content img').each(function() {
            // 获取当前图片的 src
            var imgSrc = $(this).attr('src');
            // 用新的 <a> 标签包裹原来的 <img> 标签
            $(this).wrap('<a href="' + articleUrl + '" title="点击查看大图"></a>');
        });
    });
</script>

如何使用这段JS代码:

  • 确保引入了jQuery:你的模板文件中必须已经加载了jQuery库,通常在模板的头部(<head>标签内)会有类似 <script src="{dede:global.cfg_cmspath/}/include/jquery/jquery.min.js"></script> 的代码。
  • 调整CSS选择器:代码中的 .article-content 是一个示例,你需要替换成你的文章内容容器的CSS类名或ID,你可以通过浏览器的“检查元素”功能来找到正确的选择器。

列表页(如首页、列表页)中的<li>里的图片添加链接

这种情况通常是在调用文章列表时,给缩略图加上跳转到文章详情页的链接。

方法:修改列表页模板(如 index.htm, list_article.htm

这是最标准的方法,你需要在调用文章列表的循环标签 {dede:arclist} 中,使用其底层模板功能。

假设你的列表页<li>结构是这样的:

织梦li标签里面图片加超链接
(图片来源网络,侵删)
<li>
    <img src="[这里是图片地址]" alt="[这里是标题]">
    <h3><a href="[这里是文章链接]">[这里是文章标题]</a></h3>
</li>

修改步骤:

  1. 找到列表页模板index.htm
  2. 找到 {dede:arclist},它看起来可能像这样:
    {dede:arclist row='8' titlelen='24'}
        <li>
            <img src="[field:litpic/]" alt="[field:title/]">
            <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        </li>
    {/dede:arclist}
  3. 修改<img>:使用 {dede:arclist} 的底层模板功能,将<img>标签包裹在<a>标签内部。

修改后的代码:

{dede:arclist row='8' titlelen='24'}
    <li>
        <!-- 使用底层模板 @me 来处理 -->
        [field:array runphp='yes']
            @me = '<a href="'.@me['arcurl'].'" title="'.@me['title'].'"><img src="'.@me['litpic'].'" alt="'.@me['title'].'"></a>';
        [/field:array]
        <!-- 或者更简洁的写法(如果PHP版本支持) -->
        <!-- 
        <a href="[field:arcurl/]" title="[field:title/]">
            <img src="[field:litpic/]" alt="[field:title/]">
        </a>
        -->
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    </li>
{/dede:arclist}

代码解释:

  • [field:array runphp='yes']...[/field:array]arclist 的底层模板,允许你使用PHP代码来组织输出。
  • @me 变量代表了当前这条数据的完整数组。
  • 我们在这里拼接了一个完整的HTML字符串,包含<a>标签和<img>标签,并将它赋值给 @me
  • [field:arcurl/] 会自动被替换为文章的详情页链接。
  • [field:litpic/] 会被替换为文章的缩略图地址。
  • [field:title/] 会被替换为文章标题,用作alt属性和title属性,有利于SEO。

自定义模型内容中的图片添加链接

如果你的<li>里的图片来自于一个自定义的模型(比如产品模型),方法与场景二类似,只是你需要使用对应字段的标签。

你的自定义模型有一个字段 product_pic,你想要点击这个图片跳转到产品详情页。

修改方法: 在调用自定义模型内容的列表模板中,使用 {dede:sql}{dede:list} 标签进行调用,并使用底层模板。

{dede:sql sql="SELECT * FROM dede_addonproduct WHERE typeid=1 LIMIT 10"}
    <li>
        [field:array runphp='yes']
            // 假设产品详情页的链接规则和普通文章一样,可以用 arcurl
            // 如果不是,你需要自己拼接URL
            @me = '<a href="'.GetArcUrl(@me['id']).'" title="'.@me['title'].'"><img src="'.@me['product_pic'].'" alt="'.@me['title'].'"></a>';
        [/field:array]
    </li>
{/dede:sql}

注意:对于自定义模型,GetArcUrl() 函数可能需要根据你的实际情况调整,或者直接使用织梦的全局标签 {dede:field name='phpurl'/}/arc.php?aid= 来拼接。

场景 推荐方法 关键点
编辑器功能(最简单)
JS正则替换(灵活)
使用编辑器的“插入链接”功能,或用JS在页面加载后动态包裹。
列表页(如首页) 修改列表模板 使用 {dede:arclist} 的底层模板 [field:array runphp='yes']<img><a>包裹。
自定义模型 修改列表模板 使用 {dede:sql}{dede:list} 的底层模板,调用对应的图片字段和链接字段。

对于大多数用户来说,场景一用方法一,场景二用列表模板修改 就能解决99%的需求,希望这些详细的步骤能帮到你!

-- 展开阅读全文 --
头像
C4996警告为何出现?如何解决?
« 上一篇 2025-12-19
dede_arctiny是什么?有什么用?
下一篇 » 2025-12-19

相关文章

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