菜鸟科技网

织梦调用变量方法是什么?

核心基础:{dede:}

织梦绝大多数变量都是通过 {dede:} 标签系统来调用的,这个标签的结构通常如下:

织梦调用变量方法是什么?-图1
(图片来源网络,侵删)
{dede:标签名 属性='值'}
    // 循环体内的内容,这里可以调用变量
{/dede:标签名}
  • 标签名:决定了你要调用什么类型的数据,arclist (文章列表), list (栏目列表), field (文章字段) 等。
  • 属性:用来筛选和格式化数据,typeid (栏目ID), titlelen (标题长度) 等。
  • 变量:在标签体内,通过特定的语法(如 [field:title/])来输出数据。

常用变量调用详解

全局变量

这些变量在整个网站的任何地方(包括首页、列表页、内容页)都可以直接调用,通常用于显示网站的基本信息。

调用方法:直接使用 {dede:全局变量名/}

常用全局变量示例:

变量名 说明 示例代码
cfg_webname 网站名称 <title>{dede:global.cfg_webname/}</title>
cfg_weburl 网站根目录URL <link rel="canonical" href="{dede:global.cfg_weburl/}" />
cfg_powerby 网页版权信息 <footer>{dede:global.cfg_powerby/}</footer>
cfg_description 网站描述 <meta name="description" content="{dede:global.cfg_description/}" />
cfg_keywords 网站关键词 <meta name="keywords" content="{dede:global.cfg_keywords/}" />

页变量

这些变量只在article_article.htm)或文章列表页list_*.htm)的特定循环体内有效。

织梦调用变量方法是什么?-图2
(图片来源网络,侵删)

A. 在文章内容页 (article_article.htm) 调用

页,你可以直接调用当前文章的字段,通常使用 {dede:field.属性名/} 的形式。

常用字段变量示例:

| 变量名 | 说明 | 示例代码 | | :--- | :--- | :--- | | 文章标题 | <h1>{dede:field.title/}</h1> | | pubdate | 发布时间 | <span>发布时间:{dede:field.pubdate function='MyDate('Y-m-d', @me)'/}</span> | | source | 文章来源 | <span>来源:{dede:field.source/}</span> | | writer | 作者 | <span>作者:{dede:field.writer/}</span> | | click | 点击量 | <span>点击:{dede:field.click/}</span> | | body | 文章正文 | {dede:field.body/} | | description | | <meta name="description" content="{dede:field.description function='html2text(@me)'/}" /> |

高级用法:使用 function 进行格式化

织梦调用变量方法是什么?-图3
(图片来源网络,侵删)

织梦支持对变量使用PHP函数进行二次处理,非常强大。

// 格式化日期,将 Unix 时间戳转为 Y-m-d H:i:s 格式
{dede:field.pubdate function='MyDate('Y-m-d H:i:s', @me)'/}
只显示前20个字符
{dede:field.title function='cn_substr(@me, 20)'/}
// 将文章正文中的图片地址加上绝对路径
{dede:field.body function='str_replace('src="/', 'src="{dede:global.cfg_basehost/}/', @me)'/}

B. 在文章列表页 (list_*.htm) 调用

在列表页,你需要使用 {dede:arclist} 标签来循环输出文章列表,然后在循环体内调用每篇文章的变量。

调用方法{dede:arilogue 属性='值'}...[field:变量名/]...{/dede:arclist}

示例代码(在列表页模板中):

<ul>
    {dede:arclist typeid='1' titlelen='30' row='10'}
        <li>
            <!-- [field:title/] 是文章标题 -->
            <a href="[field:arcurl/]">[field:title/]</a>
            <!-- [field:pubdate function='MyDate('Y-m-d', @me)'] 是格式化后的发布日期 -->
            <span>[field:pubdate function='MyDate('Y-m-d', @me)']</span>
        </li>
    {/dede:arclist}
</ul>

常用 arclist 属性和循环体内变量:

arclist 属性 说明 循环体内变量 说明
typeid 指定栏目ID [field:title/]
row 调用文章数量 [field:arcurl/] 文章链接
infolen 摘要长度 [field:description/] 文章摘要
imgwidth/imgheight 缩略图尺寸 [field:litpic/] 缩略图地址
orderby 排序方式(如 click 点击量) [field:click/] 点击量

栏目变量

这些变量用于调用栏目的信息,通常在首页列表页内容页调用。

A. 在首页或列表页调用当前栏目信息

使用 {dede:global.name/} 可以在列表页直接获取当前栏目的名称。

示例:

// 在 list_*.htm 中,这会显示当前列表页的栏目名
<h2>{dede:global.name/}</h2>

B. 在内容页调用栏目信息

页,使用 {dede:field.typeid/} 可以获取当前文章所属的栏目ID,然后通过这个ID去获取其他栏目信息。

示例(在 article_article.htm 中):

// 获取当前文章的栏目名称
{dede:gettype typeid='[field:typeid/]'}
    当前栏目:<a href="[field:typelink/]">[field:typename/]</a>
{/dede:gettype}
// 更简洁的写法(如果只需要名称)
{dede:field name='typename'/}

自定义字段变量

这是织梦非常强大的功能,允许你为不同的模型添加额外的字段,产品价格”、“规格”、“下载链接”等。

调用方法:与普通字段完全相同,直接调用字段名即可。

前提条件:

  1. 在后台“模型” -> “内容模型管理”中为你的模型添加了自定义字段(price, guige)。
  2. 发布文章时,为这些字段填写了内容。

示例:

假设你添加了一个名为 price 的自定义字段。

// 在文章内容页调用
<h3>价格:¥{dede:field.price/}</h3>
// 在文章列表页调用
{dede:arclist typeid='1' row='5'}
    <div class="product">
        <h4>[field:title/]</h4>
        <p>价格:¥[field:price/]</p> <!-- 直接调用自定义字段 -->
    </div>
{/dede:arclist}

PHP 变量(高级用法)

{dede:} 标签无法满足复杂需求时,你可以直接在模板文件中嵌入PHP代码。

调用方法:使用 {dede:php}

示例1:获取并显示当前登录的管理员用户名

{dede:php}
    $uid = $cfg_ml->M_LoginID; // 获取当前登录用户ID
    $row = $dsql->GetOne("SELECT uname FROM `dede_admin` WHERE id='$uid'");
    if(is_array($row)){
        echo '欢迎,' . $row['uname'];
    }
{/dede:php}

示例2:调用一个自定义的函数

/include/common.func.php 文件中添加你的PHP函数:

function getHelloWorld() {
    return 'Hello, World from PHP!';
}

然后在模板中调用它:

{dede:php}
    echo getHelloWorld();
{/dede:php}

总结与最佳实践

  1. 先分清位置:你是在首页、列表页还是内容页?不同位置可用的变量不同。
  2. 善用官方文档:织梦官方文档是查询所有标签和变量的最佳来源。
  3. 优先使用 {dede:}:它们是专门为模板设计的,安全且高效。
  4. 谨慎使用 {dede:php}:虽然强大,但直接在模板中写PHP代码会降低模板的可维护性,并可能带来安全风险,尽量将复杂的逻辑放在后台PHP文件中,模板只负责显示。
  5. 自定义字段是利器:充分利用自定义字段,可以让你的网站功能更加丰富和灵活。

希望这份详细的指南能帮助你熟练掌握织梦的变量调用!

分享:
扫描分享到社交APP
上一篇
下一篇