dede文章id标签如何使用?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文

核心标签:{dede:field.id/}

这是最常用、最直接的获取当前文章 ID 的标签。

dede文章id标签
(图片来源网络,侵删)
  • 适用场景仅适用于文章内容页,也就是 article_article.htm 这个模板文件。
  • 作用:获取当前正在浏览的文章的 ID。
  • 用法
    <span>当前文章ID是:{dede:field.id/}</span>
  • 输出示例: 如果你正在浏览 ID 为 123 的文章,那么上述代码会输出:
    <span>当前文章ID是:123</span>

在列表页或首页获取文章 ID

在列表页(如 index.htm, list_article.htm)或自定义栏目列表页中,你需要使用循环标签 {dede:list}{dede:arclist} 在循环内部获取文章 ID。

使用 {dede:list}

{dede:list} 用于调用当前栏目的文章列表。

适用模板list_article.htm (栏目列表页)

用法示例

dede文章id标签
(图片来源网络,侵删)
{dede:list pagesize='8'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <!-- 在循环内部使用 field.id 获取当前文章的ID -->
        <small>文章ID: [field:id/]</small>
    </li>
{/dede:list}
  • 说明:在 {dede:list} ... {/dede:list} 循环块内部,使用 [field:id/] 来获取每篇文章的 ID。

使用 {dede:arclist}

{dede:arclist 是一个更强大、更灵活的标签,可以跨栏目调用文章,适用于首页、自定义页面等几乎所有地方。

适用模板index.htm (首页), custom.html (自定义页面), list_article.htm (列表页) 等。

用法示例

{dede:arclist typeid='' titlelen='40' row='8'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <!-- 在循环内部使用 field.id 获取当前文章的ID -->
        <small>文章ID: [field:id/]</small>
    </li>
{/dede:arclist}
  • 说明:和 {dede:list} 一样,在 {dede:arclist} 的循环内部,使用 [field:id/] 来获取每篇文章的 ID。

在自定义函数或PHP代码中获取文章 ID

如果你在模板文件中写了 PHP 代码,或者开发了自定义插件/函数,需要获取文章 ID,则不能使用 DedeCMS 的模板标签,而应该直接操作 PHP 变量。

dede文章id标签
(图片来源网络,侵删)

DedeCMS 在解析文章页时,会将文章 ID 存储在一个全局变量中。

页 (article_article.htm) 的PHP代码中

<?php
// 在文章内容页,可以直接使用全局变量 $aid
$article_id = $aid;
// 或者使用 $_GET['id'],因为文章页的URL通常是 /plus/view.php?aid=123
$article_id_get = $_GET['id'];
// 在这里可以使用 $article_id 或 $article_id_get 进行后续操作
echo "通过PHP变量获取的文章ID是: " . $article_id;
?>

推荐使用 $aid,因为这是 DedeCMS 内部定义的、专门用于当前文章ID的变量。

在列表页或其他页面的PHP代码中

在列表页,循环每篇文章时,DedeCMS 会将当前文章的信息(包括ID)存入一个数组 $row 中。

{dede:list}
    <?php
    // 在循环内部,当前文章的数据被存储在 $row 数组中
    $current_article_id = $row['id'];
    // 你可以在PHP代码中使用这个ID
    echo "<!-- PHP中获取的ID: " . $current_article_id . " -->";
    ?>
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <small>文章ID: [field:id/]</small> <!-- 这是模板标签获取的ID -->
    </li>
{/dede:list}

总结与对比

场景 推荐标签/方法 说明
(article_article.htm) {dede:field.id/} 最标准、最简单的方法,专门用于文章页。
列表页/首页 (index.htm, list_*.htm) [field:id/] 必须放在 {dede:list}{dede:arclist} 循环内部使用。
PHP 代码中 (文章页) $aid$_GET['id'] 在模板的 <?php ... ?> 代码块中获取,$aid 是 DedeCMS 的全局变量。
PHP 代码中 (列表页循环内) $row['id'] {dede:list}{dede:arclist} 循环的 PHP 代码块中获取。

常见问题

Q: 为什么我在首页的 {dede:arclist} 循环外使用 [field:id/] 是无效的? A: 因为 [field:id/] 是一个“字段”标签,它的值依赖于一个数据上下文,在 {dede:arclist} 循环内部,上下文是“单篇文章”,所以可以获取到 ID,而在循环外部,没有明确的数据上下文,系统不知道你要获取哪一篇文章的 ID,因此无法解析,会输出空或原始标签。

Q: 我如何获取当前栏目的 ID? A: 获取栏目 ID 的标签是 {dede:fieldtypeid/}

  • 栏目列表页 (list_article.htm) 中,它会自动获取当前栏目的 ID。
  • (article_article.htm) 中,它会获取该文章所属栏目的 ID。

希望这份详细的解释能帮助你完全理解 DedeCMS 中文章 ID 的获取方法!

-- 展开阅读全文 --
头像
织梦系统还有人用吗?
« 上一篇 04-14
C语言如何实现数组reshape?
下一篇 » 04-14

相关文章

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