核心标签:{dede:field.id/}
这是最常用、最直接的获取当前文章 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: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 变量。
(图片来源网络,侵删)
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 的获取方法!
{dede:list} 用于调用当前栏目的文章列表。
适用模板:list_article.htm (栏目列表页)
用法示例:

{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 变量。
(图片来源网络,侵删)
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 的获取方法!
{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 变量。

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 的获取方法!
