织梦首页调用文章视频

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

这里为您提供三种主流的实现方法,从最推荐、最灵活最简单,您可以根据自己的技术能力和需求选择。

织梦首页调用文章视频
(图片来源网络,侵删)

使用附加字段(最推荐、最灵活)

这是最规范、最灵活的方法,通过在文章模型中添加一个自定义的“视频”字段,然后在后台发布文章时上传或填写视频地址,首页就可以直接调用了。

第一步:在后台添加附加字段

  1. 登录织梦后台 (/dede/)。

  2. 进入 【系统】 -> 【SQL命令行工具】

  3. 在命令行文本框中,输入以下SQL语句,然后点击“查询”或“执行”,这会为 dede_archives 表(文章主表)添加一个名为 video 的文本字段,用于存储视频地址。

    织梦首页调用文章视频
    (图片来源网络,侵删)
    ALTER TABLE `dede_archives` ADD `video` TEXT NOT NULL DEFAULT '';
    • 提示:如果你的数据库表前缀不是 dede_,请修改成你自己的表前缀。
  4. 进入模型管理

    • 路径:【核心】 -> 模型管理】
    • 找到你文章所在的内容模型(通常是“普通文章”),点击后面的 【字段管理】
  5. 添加新字段

    • 点击 【添加新字段】
    • 字段名称video (必须和SQL语句中的一致,小写)。
    • 视频 (这是在后台显示的名称)。
    • 字段类型多媒体 (推荐,可以方便地上传和选择本地视频或输入外部视频链接)。
    • 字段说明请上传或填写视频地址 (可选)。
    • 其他选项:保持默认或根据需要设置,确保“是否显示在发布页”选择“是”。
    • 点击 【保存】
  6. 更新缓存

    • 路径:【系统】 -> 【一键更新网站】 -> 【更新系统缓存】,点击“开始更新”。

第二步:在后台发布文章

  1. 发布一篇新文章或编辑旧文章。
  2. 在文章编辑页面,你会发现多了一个“视频”字段。
  3. 填写视频地址
    • 如果是本地视频:点击“上传多媒体”,选择你服务器上的视频文件(建议放在 /uploads/video/ 目录下)。
    • 如果是外部视频:直接粘贴视频的URL地址,
      • MP4文件:http://example.com/video/sample.mp4
      • YouTube视频:https://www.youtube.com/embed/VIDEO_ID
      • B站视频:https://player.bilibili.com/player.html?aid=VIDEO_ID

第三步:在首页模板中调用视频

你可以在首页模板文件(通常是 /templets/default/index.htm)中使用 {dede:arclist} 标签来调用这个新字段了。

核心标签:

  • {dede:field.video}:直接调用文章的 video 字段内容。

示例代码:

以下是一个常见的调用代码,它会循环列出最新的5篇带有视频的文章。

{dede:arclist row='5' titlelen='30' orderby='pubdate' typeid='' channelid='1'}
    <div class="video-item">
        <!-- 调用视频 -->
        {dede:field.video runphp='yes'}
            @me = (@me == '' ? '' : '<video controls width="300" height="200"><source src="' . @me . '" type="video/mp4">您的浏览器不支持视频标签。</video>');
        {/dede:field.video}
        <!-- 调用文章标题和链接 -->
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <!-- 调用文章简介 -->
        <p>[field:description function='cn_substr(@me,100)'/]...</p>
    </div>
{/dede:arclist}

代码解释:

  • {dede:arclist ...}:文章列表调用标签。
    • row='5':调用5条。
    • titlelen='30'长度30个字符。
    • orderby='pubdate':按发布时间排序。
  • {dede:field.video runphp='yes'}:对 video 字段进行PHP处理。
    • @me 代表当前字段的值。
    • 这段代码的意思是:video 字段为空,则不显示任何内容;如果不为空,则生成一个标准的HTML5 <video>
  • [field:arcurl/]:文章链接。
  • [field:title/]
  • [field:description function='cn_substr(@me,100)'/]:文章简介,并截取前100个字符。

使用文章内容(Body)中的第一个视频(最简单)

如果你不想修改数据库,可以将视频直接放在文章编辑器的正文内容(Body)的开头,然后在首页通过正则表达式提取出来。

第一步:在后台发布文章

  1. 正常发布文章。
  2. 在文章编辑器(比如百度编辑器)的开头,直接插入视频,确保这个视频是正文里的第一个视频元素。

第二步:在首页模板中调用

使用 {dede:arclist}body 字段和 preg_replace 函数来提取视频。

{dede:arclist row='5' titlelen='30' orderby='pubdate'}
    <div class="video-item">
        <!-- 使用正则表达式提取body中的第一个video或iframe标签 -->
        [field:body function='preg_replace("/.*?(<video.*?<\/video>|<iframe.*?<\/iframe>).*/is", "\\1", @me)'/]
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <p>[field:description function='cn_substr(@me,100)'/]...</p>
    </div>
{/dede:arclist}

代码解释:

  • [field:body ...]:调用文章的正文内容。
  • function='preg_replace(...)':对正文内容执行一个正则表达式替换。
    • "/.*?(<video.*?<\/video>|<iframe.*?<\/iframe>).*/is":这个正则表达式会匹配从开头到第一个 <video>... 或者 <iframe>... 结束的所有内容,并提取出这个标签本身,它可以兼容HTML5的video标签和嵌入的iframe(如B站、YouTube)。
    • "\\1":表示用第一个匹配到的结果(即视频标签)替换掉整个正文内容。

优点:无需修改数据库,非常简单。 缺点

  • 不够灵活,视频必须放在正文开头。
  • 如果正文没有视频,则调用内容为空,但可能会留下多余的空白。
  • 效率略低于直接调用附加字段。

使用自定义模型(功能最强)

如果你的网站视频内容非常多,并且视频本身也有很多属性(如时长、封面图、播放次数等),建议创建一个全新的“视频”模型。

  1. 创建模型:在 【核心】 -> 模型管理】 中创建一个新模型,比如叫“视频”。
  2. 设计字段:为这个模型设计你需要的所有字段,如视频地址视频封面视频时长播放次数等。
  3. 时选择“视频”模型。
  4. 首页调用:在首页使用 {dede:arclist} 并指定 channelid 为你的视频模型的ID。
{dede:arclist row='5' channelid='视频模型的ID' orderby='pubdate'}
    <!-- 调用视频模型的自定义字段,'video_url' -->
    <video controls width="300" height="200">
        <source src="[field:video_url/]" type="video/mp4">
    </video>
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
{/dede:arclist}

优点:功能最强大,结构最清晰,利于SEO和后续扩展。 缺点:设置最复杂,适合有一定开发经验的用户。

总结与建议

方法 优点 缺点 适用场景
附加字段 灵活、规范、性能好、易于维护 需要修改数据库和字段,步骤稍多 强烈推荐,绝大多数场景下的最佳选择。
简单、无需修改数据库 不灵活、效率低、依赖正文结构 临时使用、少量视频、不想修改数据库的快速实现。
自定义模型 功能最强、结构清晰、利于SEO 设置复杂,需要重新学习模型管理 网站以视频为核心,视频属性复杂,需要长期维护。

对于大多数用户来说,方法一 是最平衡、最实用的解决方案,希望这个详细的教程能帮助到你!

-- 展开阅读全文 --
头像
c语言socket编程实例
« 上一篇 今天
何钦铭C语言程序设计第三版适合自学吗?
下一篇 » 今天

相关文章

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