本文最后更新于 130 天前,其中的信息可能已经有所发展或是发生改变。
在使用 DedeCMS 时,遇到一个问题:在栏目列表页中可以正常调用自定义字段[field:rental_cost]
,但在文章详情页中却无法显示这些字段的值。文章内用如下调用即可
<p>租赁费用:{dede:field.rental_cost/} 元/小时</p>
- 上下文不同:
- 栏目列表页:
- 使用
[field:rental_cost/]
是因为这些标签在循环标签(如arclist
或list
)内部,每次循环都会为当前文章提取相应字段值。 - 文章详情页:
- 应使用
{dede:field.rental_cost/}
,因为它是在特定文章的上下文中进行的。
- 标签解析规则:
- 列表页使用
[field:]
语法,详情页使用{dede:field}
语法。
- 列表页使用
1.文章详情页
在文章详情页模板中,使用 {dede:field.rental_cost/}
调用自定义字段:
<p>租赁费用:{dede:field.rental_cost/} 元/小时</p>
如果需要格式化输出或条件判断,可以使用 function
或 runphp
:
1.格式化输出:
<p>租赁费用:{dede:field.rental_cost function="sprintf('%.2f', @me)"} 元/小时</p>
2.条件判断:
{dede:field.rental_cost runphp="yes"} if (@me > 0) { @me = "租赁费用:" . @me . " 元/小时"; } else { @me = "免费租赁"; } {/dede:field.rental_cost}
2. 栏目列表页
在栏目列表页模板中,继续使用 [field:rental_cost/]
:
{dede:arclist}
<li>
<h2><a href="[field:arcurl/]">[field:title/]</a></h2>
<p>租赁费用:[field:rental_cost/] 元/小时</p>
</li>
{/dede:arclist}