在DedeCMS(织梦)中,likearticle
标签用于调用相关文章,其中mytypeid
参数通常用于指定要显示文章的栏目ID,默认情况下,mytypeid
仅支持单个栏目ID,如果你希望likearticle
标签支持多个栏目和子栏目,你可以通过以下方法实现:
1、创建自定义函数
你需要在DedeCMS的模板文件中创建一个自定义函数,该函数用于获取多个栏目及其子栏目的文章,在模板文件的适当位置(foot.htm
),添加以下代码:
<?php function getLikeArticle($mytypeidArr, $limit = 10) { global $dsql; $sql = "SELECT * FROM#@__arctiny
WHERE 1"; foreach ($mytypeidArr as $mytypeid) { $sql .= " OR (typeid
='$mytypeid' ORtypeid
IN (SELECTid
FROM#@__arctype
WHEREreid
='$mytypeid'))"; } $sql .= " ORDER BYsenddate
DESC,id
DESC LIMIT $limit"; $dsql>SetQuery($sql); $dsql>Execute(); $result = $dsql>GetArray(); return $result; } ?>
2、修改likearticle
标签
接下来,你需要修改DedeCMS的likearticle
标签,使其支持多个栏目和子栏目,在include/taglib/arclist.lib.php
文件中,找到likearticle
标签的定义,然后替换原有的mytypeid
参数处理逻辑为以下代码:
if (!empty($mytypeid)) { if (is_array($mytypeid)) { $mytypeidArr = $mytypeid; } else { $mytypeidArr = explode(',', $mytypeid); } $sql .= " AND (typeid
IN (" . implode(',', $mytypeidArr) . ") ORtypeid
IN (SELECTid
FROM#@__arctype
WHEREreid
IN (" . implode(',', $mytypeidArr) . ")))"; }
3、使用likearticle
标签
现在,你可以在DedeCMS的模板中使用likearticle
标签来调用多个栏目和子栏目的文章了。
<div class="likearticle"> <?php $mytypeidArr = array(1, 2, 3); // 指定要显示文章的栏目ID数组 $likeArticles = getLikeArticle($mytypeidArr, 10); // 调用自定义函数,获取相关文章列表 foreach ($likeArticles as $k => $v) { echo "<a href='" . GetArcURL($v) . "' target='_blank'>" . $v['title'] . "</a>"; if ($k < count($likeArticles) 1) { echo " | "; } } ?> </div>
通过以上步骤,你可以实现在DedeCMS中让likearticle
标签支持多个栏目和子栏目的功能,注意,这里的代码仅作为示例,你可能需要根据实际需求进行调整。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。