dede织梦如何调用栏目描述?

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

在当前栏目列表页调用(最常用)

这是最常见的情况,比如你在 plus/list.php 页面(栏目列表页)想显示当前栏目的描述。

dede 织梦 调用栏目描述
(图片来源网络,侵删)

使用全局变量 $typename

这是最简单直接的方法,适用于 DedeCMS 的模板引擎({dede:} 标签)。

代码示例:

<h2>栏目名称:{dede:field name='typename'/}</h2>
<p>栏目描述:{dede:field name='description'/}</p>

代码解释:

  • {dede:field name='typename'/}:输出当前栏目的名称。
  • {dede:field name='description'/}:输出当前栏目的描述,这个标签在列表页、文章页等带有栏目上下文的页面中,默认就是指“当前栏目”的描述。

完整示例(一个典型的列表页模板 list_article.htm):

dede 织梦 调用栏目描述
(图片来源网络,侵删)
{dede:include filename="head.htm"/}
<div class="main">
    <div class="path">
        <a href="/">首页</a>
        {dede:field name='position'/}
    </div>
    <div class="left">
        <!-- 调用当前栏目的名称和描述 -->
        <div class="channel-title">
            <h1>{dede:field name='typename'/}</h1>
            <p class="description">{dede:field name='description'/}</p>
        </div>
        <!-- 调用文章列表 -->
        <ul class="article-list">
            {dede:list pagesize='10'}
            <li>
                <a href="[field:arcurl/]">[field:title/]</a>
                <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
            </li>
            {/dede:list}
        </ul>
        <!-- 调用分页 -->
        {dede:pagelist listitem='info,index,end,pre,next,pageno' listsize='5'/}
    </div>
    {dede:include filename="right.htm"/}
</div>
{dede:include filename="footer.htm"/}

页调用

页(article_article.htm),你同样可以调用该文章所属栏目的描述。

这里推荐使用 {dede:field} 标签,因为它更明确。

代码示例:

<h1>{dede:field.title/}</h1>
<div class="article-info">
    发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/} &nbsp;&nbsp;
    所属栏目:<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> &nbsp;&nbsp;
    栏目描述:{dede:field name='description'/}
</div>
<div class="article-content">
    {dede:field.body/}
</div>

代码解释:

  • {dede:field name='typeurl'/}:获取当前栏目的链接地址。
  • 其余字段和方法与列表页相同,因为在文章内容页,{dede:field} 的上下文就是当前文章及其所属栏目。

在首页或其他非栏目页面调用

这是一个稍微复杂一点但非常实用的场景,比如你想在首页的某个位置显示“公司简介”这个栏目的描述。

这时,你不能直接使用 {dede:field description/},因为首页没有“当前栏目”,你需要使用 {dede:channel}{dede:type} 标签来指定你想要调用的栏目。

方案 A:使用 {dede:channel} 标签(推荐)

{dede:channel} 通常用于生成栏目导航,但它也可以用来获取单个栏目的信息。

代码示例:

假设“公司简介”栏目的 ID 是 2

<h2>关于我们</h2>
<p>{dede:channel typeid='2'}[field:description]{/dede:channel}</p>

代码解释:

  • typeid='2':这是关键,指定了你要调用的栏目的 ID,你需要在后台“栏目管理”中找到目标栏目的 ID。
  • [field:description]:在 {dede:channel} 标签内部,使用 [field:xxx] 来获取该栏目的属性。

方案 B:使用 {dede:type}

{dede:type}{dede:channel} 用法非常相似,也可以用来获取指定栏目的信息。

代码示例:

同样,假设“公司简介”栏目的 ID 是 2

<h2>联系我们</h2>
<p>{dede:type typeid='2'}[field:description]{/dede:type}</p>

代码解释:

  • typeid='2':同样是指定栏目 ID。
  • [field:description]:获取该栏目的描述。

使用 SQL 查询(最灵活)

如果你想在自定义 PHP 文件或者需要更复杂逻辑的地方调用栏目描述,可以直接执行 SQL 查询。

PHP 代码示例:

<?php
require_once (dirname(__FILE__) . "/include/common.inc.php"); // 引入核心文件
// 假设你要获取栏目ID为1的描述
$channel_id = 1;
// 执行SQL查询
$dsql->SetQuery("SELECT description FROM `#@__arctype` WHERE id = $channel_id");
$dsql->Execute();
$row = $dsql->GetArray();
if($row) {
    echo "<h3>栏目ID为 $channel_id 的描述是:</h3>";
    echo $row['description'];
} else {
    echo "未找到ID为 $channel_id 的栏目。";
}
?>

代码解释:

  • require_once (dirname(__FILE__) . "/include/common.inc.php");必须引入这个文件,它包含了 DedeCMS 的数据库连接和核心函数。
  • $dsql:这是 DedeCMS 的全局数据库连接对象。
  • #@__arctype:这是 dede_arctype 表的前缀替换写法,#@__ 会被你在配置文件中设置的表前缀替换。
  • SELECT description FROM ... WHERE id = ...:标准的 SQL 查询语句,用于从栏目表中获取指定 ID 的描述字段。

总结与最佳实践

场景 推荐方法 示例代码
当前栏目列表页 使用 {dede:field name='description'/} {dede:field name='description'/}
使用 {dede:field name='description'/} {dede:field name='description'/}
首页/其他页面 使用 {dede:channel typeid='N'} {dede:channel typeid='2'}[field:description]{/dede:channel}
PHP 自定义文件 使用 SQL 查询 $dsql->GetOne("SELECT description FROM#@__arctypeWHERE id=2");

重要提示:

  • 栏目 ID:在首页等非栏目页调用时,typeid 是必须的,请务必去后台“栏目管理”中找到你要调用的那个栏目的准确 ID。
  • 缓存问题:如果修改了栏目描述但前台页面没有立即更新,请检查后台是否开启了模板缓存,可以尝试在后台“生成” -> “更新HTML” -> “更新栏目HTML”,或者清除缓存。
  • SEO 优化:栏目描述对 SEO 很重要,建议每个栏目都填写一段有吸引力的、包含关键词的描述。

希望这份详细的指南能帮助你成功调用 DedeCMS 的栏目描述!

-- 展开阅读全文 --
头像
dede tag关键词链接如何正确设置与优化?
« 上一篇 01-24
织梦整体项目如何引入?
下一篇 » 01-24

相关文章

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