DEDECMS(织梦)TAG页面调用文章详情内容(body)自定义字段的方法

这段代码展示了一种在DEDECMS内容管理系统中,于TAGLIST列表页面直接获取并处理文章正文的方法。通过执行SQL查询从dede_addonarticle表中选取指定ID(@me)的文章内容,然后存储到变量并输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    [field:id runphp="yes"]
    // 获取全局变量 $dsql
    global $dsql;

    // 构造 SQL 查询语句,查询文章正文内容
    $query = "SELECT body FROM `dede_addonarticle` WHERE aid='@me' ";

    // 执行 SQL 查询语句,获取文章正文内容
    $dsql->Execute('body',$query);
    $row = $dsql->GetArray('body');

    // 将获取到的文章正文内容保存到 $cpsurl 变量中
    $cpsurl .= $row['body'];

    // 输出 $cpsurl 变量的值
    @me=$cpsurl;
    [/field:id]

上述代码中主要用于DEDECMS在TAGLIST列表页面,直接获取长篇文章的功能。

具体代码是嵌入在{dede:list} {/dede:list}中间的 

### DedeCMS 内容调用文章正文的方法DedeCMS 中,内容调用文章正文是一个非常常见的需求。通常情况下,DedeCMS 的模板引擎会自动完成这一操作,但如果需要自定义或者扩展功能,则可以通过特定的标签或代码实现。 #### 默认方式 对于标准的内容页模板文件 `article_article.htm` 或其他类似的模板文件,默认已经包含了 `{dede:field.content/}` 这一标签用于显示文章正文[^5]。此标签无需额外配置即可正常工作。 ```html <div class="content"> {dede:field.content/} </div> ``` 如果希望对正文内容进行处理(如截取部分内容),可以使用内置函数 `cn_substr()` 和 `html2text()` 来实现: ```html <p>{dede:field.content function='cn_substr(html2text(@me), 200)'/}</p> ``` 以上代码表示将正文转换为纯文本并截取前 200 字符[^3]。 --- #### 自定义 SQL 查询方式 当默认标签无法满足复杂需求时,也可以通过自定义 SQL 查询的方式获取正文内容。例如,在某些特殊场景下可能需要手动查询数据库字段 `body` 并将其嵌入页面中。 以下是一段示例代码展示如何通过 PHP 实现这一点: ```php <?php $aid = intval($refObj->Fields['id']); // 获取当前文档 ID $row = $dsql->GetOne("SELECT body FROM `dede_addonarticle` WHERE aid='$aid'"); if(is_array($row)){ echo htmlspecialchars_decode($row['body']); } else { echo "未找到相关内容"; } ?> ``` 这段代码的作用是从附加表 `dede_addonarticle` 中提取指定文章的正文部分,并输出到页面上[^1]。 --- #### 动态加载方式 为了提高性能或优化用户体验,还可以考虑动态加载文章正文内容。这通常涉及 AJAX 技术以及服务器端接口的支持。以下是一个简单的前端和后端配合方案的例子: ##### 前端 HTML + JavaScript ```html <button id="loadContent">加载全文</button> <div id="textContent"></div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function(){ $('#loadContent').click(function(){ $.ajax({ url: '/get_content.php', type: 'POST', data: {'aid': <?php echo $refObj->Fields['id']; ?>}, success: function(response){ $('#textContent').html(response); } }); }); }); </script> ``` ##### 后端 PHP 文件 (`get_content.php`) ```php <?php require_once(dirname(__FILE__)."/../include/common.inc.php"); $aid = isset($_POST['aid']) ? intval($_POST['aid']) : 0; if ($aid > 0){ global $dsql; $row = $dsql->GetOne("SELECT body FROM `dede_addonarticle` WHERE aid='$aid'"); if(is_array($row)){ echo htmlspecialchars_decode($row['body']); } else { echo "未找到相关内容"; } } else { echo "参数错误"; } ?> ``` 这种方法适合于大篇幅内容分步加载的情况,能够有效减少初始页面加载时间[^4]。 --- ### 总结 无论是利用默认标签还是编写自定义逻辑,都可以灵活地实现在 DedeCMS 内容页上调用文章正文的功能。具体选择取决于实际应用场景和技术要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值