织梦如何调用指定ID的文章?

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

使用系统标签 arclist

这是最推荐、最简单的方法,适用于绝大多数场景。arclist 标签功能强大,通过指定 idlist 属性即可实现。

织梦调用指定id文章
(图片来源网络,侵删)

标签语法

{dede:arclist idlist='文章ID1,文章ID2,文章ID3' ...其他属性...}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:arclist}

核心属性说明

  • idlist: (核心) 指定要调用文章的ID列表,多个ID用英文逗号 隔开,这是实现“指定ID”的关键,len 标题长度,截取标题多少个字符,例如titlelen='30'`。
  • row: 调用文章的数量。idlist 中有3个ID,但 row='5',也只会调用3篇,这个属性主要用于限制数量,通常可以省略。
  • orderby: 排序方式,默认为 id(按ID排序),如果你想按发布时间倒序排列,可以使用 orderby='pubdate'
  • channelid: 频道ID,默认为 1(文章频道),如果调用的是其他频道的内容(如图集、软件),需要指定对应的频道ID。
  • typeid: 栏目ID,如果只想在某个栏目下查找这些ID的文章,可以加上此属性。

完整示例

假设我们要调用ID为 10, 15, 88 的这三篇文章,并显示标题、发布日期和文章摘要。

<h3>指定文章推荐</h3>
<ul>
    {dede:arclist idlist='10,15,88' titlelen='40' row='3' orderby='pubdate'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
            <p class="summary">[field:description function='cn_substr(@me, 100)'/]...</p>
        </li>
    {/dede:arclist}
</ul>

代码解释:

  • idlist='10,15,88': 明确指定要调用这三篇文章,len='40'`: 标题最多显示40个字符。
  • row='3': 最多调用3篇文章(这里其实可以省略,因为idlist里只有3个)。
  • orderby='pubdate': 按照发布时间倒序排列这三篇文章。
  • [field:arcurl/]: 文章链接。
  • [field:title/]: 文章标题。
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]: 调用发布时间,并用自定义函数格式化为 年-月-日
  • [field:description function='cn_substr(@me, 100)'/]: 调用文章摘要,并截取前100个字符。

使用PHP代码 `{dede:php}``

这种方法更灵活,可以执行复杂的逻辑,比如先从一个地方获取ID列表,然后再去调用文章,它适用于高级用户或特殊需求。

基本思路

  1. 使用 GetOneArchive() 函数根据ID获取文章信息。
  2. {dede:php}...{/dede:php} 标签内编写循环逻辑。

标签语法

{dede:php}
    // 定义一个包含目标文章ID的数组
    $article_ids = array(10, 15, 88);
    // 遍历ID数组
    foreach($article_ids as $aid) {
        // 获取单篇文章的所有信息
        $arc = GetOneArchive($aid);
        // 如果文章存在(没有被删除),则输出
        if(is_array($arc)) {
            echo '<li>';
            echo '<a href="'.$arc['arcurl'].'" title="'.$arc['title'].'">'.$arc['title'].'</a>';
            echo '<span>'.date('Y-m-d', $arc['pubdate']).'</span>';
            echo '</li>';
        }
    }
{/dede:php}

代码解释

  • $article_ids = array(10, 15, 88);: 创建一个PHP数组,存放你想调用的文章ID。
  • foreach($article_ids as $aid): 循环遍历这个数组,每次循环 $aid 会代表一个ID。
  • $arc = GetOneArchive($aid);: 这是核心函数,它根据文章ID $aid 查询数据库,并返回一个包含该文章所有信息的数组(标题、链接、发布时间等)。
  • if(is_array($arc)): 一个健壮的判断,确保查询到的文章是有效的(ID存在且文章未被删除)。
  • $arc['arcurl']: 获取文章链接。
  • $arc['title']: 获取文章标题。
  • $arc['pubdate']: 获取文章发布时间的时间戳,需要用 date() 函数格式化。

PHP方法的优势

  • 动态ID列表: ID列表可以不是硬编码的,可以从数据库、配置文件或其他地方动态获取。
  • 复杂逻辑: 可以在循环内加入 if/else 判断,实现更复杂的显示逻辑。
  • 获取更多信息: 可以直接获取到 arclist 标签可能没有直接暴露的字段。

总结与对比

特性 方法一: arclist 方法二: php 代码
易用性 非常简单,模板化,适合所有用户 需要PHP知识,对初学者不友好
灵活性 较高,但受限于标签属性 极高,可以执行任何PHP逻辑
性能 非常好,系统底层优化过 良好,但每次执行都会有一次数据库查询循环
适用场景 大多数常规需求,如推荐指定文章、调用特定内容 需要动态ID、复杂判断或调用非标准字段的高级场景

给新手的建议:

优先使用方法一 (arclist,它简单、高效且足够强大,只有在 arclist 标签无法满足你的特殊需求时,才考虑使用方法二 (php 代码)。

-- 展开阅读全文 --
头像
织梦首页如何调用内容图片?
« 上一篇 03-20
dede 付费显示插件
下一篇 » 03-20

相关文章

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