织梦如何调取单篇文章

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

在模板文件中直接调用(最常用)

这是最直接的方法,通常用于制作首页、列表页或文章页的特定位置,比如调用指定ID的文章作为“推荐文章”、“站长推荐”等。

织梦如何调取单篇文章
(图片来源网络,侵删)

核心标签:{dede:arclist}

{dede:arclist} 是织梦最强大的列表标签,虽然名字叫“列表”,但它完全可以用来调取单篇文章。

基本语法:

{dede:arclist row='1' idlist='文章ID'}
    <a href="[field:arcurl/]">[field:title/]</a>
    <p>[field:description function='cn_substr(@me, 100)'/]...</p>
    <span>[field:pubdate function='MyDate("Y-m-d", @me)'/]</span>
{/dede:arclist}

关键参数解释:

  • row='1':表示只获取 1 篇文章,这是实现“单篇”调取的核心参数。
  • idlist='文章ID':这是最重要的参数,用于指定你要调取的文章的唯一ID,多个ID用英文逗号隔开,idlist='10,25,38',如果你只调取一篇,就只写一个ID。
  • typeid='':指定文章所属的栏目ID,如果你不确定文章ID,但知道它在哪个栏目下,可以先通过栏目ID来筛选,然后再用row限制数量。
  • channelid='':指定模型ID,默认为文章模型(1),如果是其他模型(如产品、图集等),需要填写对应的模型ID,len='30'`:标题长度,截取多少个字符。
  • infolen='100':摘要长度,截取多少个字符。
  • orderby='pubdate':排序方式,按发布时间排序,还有 click (点击量), id (文章ID) 等。

完整示例:调用ID为 100 的文章,并显示标题、摘要和发布日期

假设你想在首页某个位置显示一篇指定的推荐文章,其文章ID为 100

织梦如何调取单篇文章
(图片来源网络,侵删)
<!-- 在需要显示的位置插入以下代码 -->
<div class="featured-post">
    <h3>站长推荐</h3>
    {dede:arclist row='1' idlist='100'}
        <h4><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h4>
        <p class="summary">[field:description function='cn_substr(@me, 150)'/]...</p>
        <p class="post-meta">发布于:[field:pubdate function='MyDate("Y-m-d H:i", @me)'/]</p>
    {/dede:arclist}
</div>

代码解释:

  • [field:arcurl/]:文章的完整链接地址。
  • [field:title/]
  • [field:description/]function='cn_substr(@me, 150)' 表示对摘要内容进行截取,只显示前150个字符。
  • [field:pubdate/]:文章的发布时间戳。function='MyDate("Y-m-d H:i", @me)' 是织梦的日期格式化函数,将时间戳转换成 年-月-日 时:分 的格式。

在PHP代码中调用(适用于二次开发)

如果你在自定义的PHP文件中需要获取单篇文章的信息,可以直接使用织梦的数据库操作类。

示例:获取文章ID为 100 的文章的所有信息

<?php
// 引入织梦的核心文件
require_once (dirname(__FILE__) . "/include/common.inc.php");
// 定义要查询的文章ID
$aid = 100;
// 使用 $dsql 查询数据库
// $dsql->GetOne() 用于获取单条记录
$row = $dsql->GetOne("SELECT * FROM `#@__archives` WHERE id = {$aid}");
// 如果查询到结果
if(is_array($row)) {
    // $row 就是一个包含文章所有信息的数组
    // 注意:这里获取的是文章的基本信息,如标题、发布时间等
    // 内容在另一个表 #@__addonarticle 中(对于文章模型)
    echo "文章标题: " . $row['title'] . "<br>";
    echo "文章ID: " . $row['id'] . "<br>";
    echo "发布时间: " . $row['pubdate'] . "<br>";
    echo "点击量: " . $row['click'] . "<br>";
    // 如果需要获取文章内容,需要查询附加表
    $addonRow = $dsql->GetOne("SELECT body FROM `#@__addonarticle` WHERE aid = {$aid}");
    if(is_array($addonRow)) {
        echo "文章内容: " . $addonRow['body'] . "<br>";
    }
} else {
    echo "未找到ID为 {$aid} 的文章。";
}
?>

代码解释:

  • require_once (dirname(__FILE__) . "/include/common.inc.php");:这是调用织梦任何功能的第一步,引入核心配置和类文件。
  • $dsql:这是织梦的全局数据库连接对象。
  • $dsql->GetOne("sql语句"):执行一条SQL查询,并返回第一条结果(一个关联数组)。
  • #@__:这是织梦的数据表前缀占位符,如果你的表前缀是 dede_,织梦会自动替换。强烈建议使用此占位符,而不是直接写死表名。
  • #@__archives:存储文章基本信息的表(标题、发布时间、点击量等)。
  • #@__addonarticle:存储文章模型附加内容的表(如文章正文body、来源、作者等)。

在后台通过“自由列表”调用(适合非技术人员)

如果你不熟悉代码,可以在织梦后台创建一个“自由列表”,然后将生成的代码复制到模板中使用。

  1. 登录织梦后台
  2. 在左侧菜单找到 【核心】 -> 【自由列表管理】
  3. 点击 “增加自由列表”
  4. 填写列表名称:站长推荐”。
  5. 模型:选择“文章”。
  6. 设置栏目:选择要搜索的栏目范围,可以选择“所有栏目”或指定特定栏目。
  7. 设置排序:选择排序方式,如“发布时间降序”。
  8. 设置条数:在“最大获取条数”中输入 1
  9. 高级选项:点击“高级选项”,在“自定义SQL”或“附加SQL”中,可以手动添加 id = 100 这样的条件来精确指定文章,如果这里不设置,它会按你的排序规则获取第一篇。
  10. 保存:保存后,系统会生成一个列表ID。
  11. 获取代码:在自由列表管理页面,找到你刚刚创建的列表,点击 “选择模板风格”“更新HTML”,然后复制生成的 {dede:freelist} 标签代码,粘贴到你想要的模板文件中。

这种方法的好处是可视化操作,无需手写标签,但灵活性不如直接写 {dede:arclist}


总结与对比

方法 优点 缺点 适用场景
{dede:arclist} 灵活、强大、性能好,是织梦模板的标准用法。 需要了解标签参数和文章ID。 99% 的场景,如首页、列表页、文章页内部调用指定文章。
PHP 代码调用 功能最强大,可获取任意数据,适合复杂逻辑和二次开发。 需要PHP和SQL基础,不适合普通编辑。 自定义PHP页面、插件开发、需要复杂数据处理的后台功能。
后台自由列表 可视化操作,无需手写代码,对非技术人员友好。 灵活性差,生成代码可能冗余,不适合复杂调用。 管理员需要在后台快速创建一个简单的列表并获取代码。

对于绝大多数用户来说,方法一 ({dede:arclist}) 是最应该掌握和使用的。row='1'idlist='文章ID' 这两个关键参数,你就可以轻松地在任何模板中调取指定的单篇文章了。

-- 展开阅读全文 --
头像
织梦前台搜索功能如何实现高效数据检索?
« 上一篇 前天
如何修改织梦友情链接的显示格式?
下一篇 » 前天

相关文章

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

目录[+]