帝国CMS内容页TAG匹配相关文章列表实现教程

帝国CMS内容页TAG匹配相关文章列表实现教程

浏览次数:
作者: 墨鱼
信息来源: 本站原创
更新日期: 2014-07-15 23:39:53
文章简介

学习如何在帝国CMS内容页中根据TAG匹配并显示相关文章列表,提升用户体验和内容关联性。本教程提供详细代码示例和步骤说明。

  • 正文开始
  • 相关阅读
  • 推荐作品

功能:

比如说有3个TAG,每个TAG下有4篇文章,现在指定要显示10篇文章,那么每个TAG要拿出4篇,共有12篇文章,最终会打乱这12篇文章,然后取10篇

3个TAG,每个TAG下有3篇文章,现在指定要显示10篇文章,那么每个TAG要拿出3篇文章,共有9篇文章

3个TAG,A有2篇文章,B有5篇文章,C有3篇文章,现在要显示10篇文章,那么A拿出2篇文章,B拿出5篇文章,C拿出3篇文章,共有10篇文章

如果 A、B、C中除了当前文章,还有相同的文章,那么会扣除重复的那篇文章,只取一次。所以指定的数量会有偏差

以下代码放到/e/class/userfun.php里!

<?php
function user_otherlink($limit=5){
	global $dbtbpre,$empire,$navinfor,$class_r;
    if($navinfor[infotags]){
    	$classid=(int)$classid;
        $limit=(int)$limit;
        $tbname=$class_r[$navinfor[classid]][tbname];
        $tagarr=explode(",",$navinfor[infotags]);
        $arr=array();
        $num=ceil($limit/count($tagarr));
        foreach($tagarr as $k=>$v){
			if(count($tagarr)==$k+1){
				$num=$limit-count($arr);
			}else{
				if($i<$num){
					$num=ceil(($limit-count($arr))/count($tagarr));
				}		
			}
            $t=$empire->fetch1("select tagid,num from {$dbtbpre}enewstags where tagname='$v'");
			if($t[tagid]){
				$sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$t[tagid]");
				$i=0;
				while($s=$empire->fetch($sql)){
					if(in_array($s[id],$arr)||$s[id]==$navinfor[id]){
						continue;
					}else{
						$arr[]=$s[id];
						$i++;
					}
					if($i==$num){
						break;
					}
					if(count($arr)==$limit){
						break 2;
					}
				}
				if($t[num]>$num){
					$linshi=$t[tagid];
				}
			} 
        }
        if(count($arr)>0){
			$inid=implode(",",$arr);
			if(count($arr)<$limit&&$linshi){
				$sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$linshi and id not in($inid)");
				while($s=$empire->fetch($sql)){
					$arr[]=$s[id];
					if(count($arr)==$limit){
						break;
					}
				}
			}
			$inid=implode(",",$arr);
			$str="";
			$news=$empire->query("select id,title,titleurl,titlepic from {$dbtbpre}ecms_{$tbname} where id in($inid)");
			while($n=$empire->fetch($news)){
				$str.='<li><a href="'.$n[titleurl].'">'.$n[title].'</a></li>';
			}	
		}
        return $str;
   	}
}
?>

内容页用以下代码调用:5为显示数量 自己改

<?=user_otherlink(5)?>

关联内容: 帝国CMS TAG 代码
帝国CMS图片集优化教程:分割输出与提取首张图片代码详解
« 上一篇 2014年07月14日
帝国CMS内容页模板SEO优化,设置文章关键词与简介为标题与描述教程
下一篇 » 2014年07月16日
  • HTML5手机端仿微信底部菜单模板下载及完整代码
    24阅读0条评论0个赞
    HTML5精仿微信手机底部菜单模板,轻松打造移动端交互新体验!本教程详细解析如何利用HTML5技术,高度还原微信底部菜单样式与功能,包含完整代码与实例下载。无论是新手入门还是进阶开发者,都能快速掌握核心技巧,一键下载模板,快速集成至项目,提升界面交互友好度,让你的应用更贴近用户习惯。
  • 帝国CMS教程,为播放字段onlinpath添加播放组功能的插件指南1500点
    42阅读0条评论0个赞
    帝国CMS教程:为播放字段onlinpath添播放组功能插件指南。本教程详细介绍如何通过插件,为帝国CMS的onlinpath播放字段增加播放组功能,实现多视频分组管理、便捷播放,提升网站视频内容管理效率与用户体验,适合网站开发者及管理员学习操作。
  • 帝国CMS列表模板list.var中调用morepic字段的详细教程
    69阅读0条评论5个赞
    《帝国CMS列表模板list.var调用morepic字段教程》:想在帝国CMS默认列表内容模板里调用morepic字段却不知如何操作?别担心,本教程为你详细讲解。通过简单几步设置,就能轻松实现该字段调用,让列表展示更丰富多元,满足你多样化的网页内容呈现需求,快速提升网页展示效果。
  • 帝国CMS插件,微软Bing IndexNow推送管理工具500点
    369阅读4条评论3个赞
    微软Bing IndexNow推送管理插件,专为帝国CMS打造。本教程指导您如何高效利用该插件,实现网站内容快速被Bing搜索引擎收录。通过简单配置,即可自动化推送新发布或更新的页面至Bing,加速索引过程,提升网站SEO效果。轻松管理推送历史,监控索引状态,确保网站内容及时展现给目标用户。优化网站可见性,从掌握Bing IndexNow推送管理开始。
  • 帝国CMS8.0测试版搜索结果只显示第1页的问题解决方案教程
    136阅读0条评论1个赞
    对于刚安装帝国CMS8.0测试版尝鲜的小伙伴们可能发现,使用高级搜索的时候结果页只显示第1页,虽然帝国CMS开发者说正式版会解决此问题,但是临时使用还是要先解决这个问题的。所以今天墨鱼就说下临时的解决方法。

如本文对您有帮助,就请墨鱼抽根烟吧!