您现在的位置是:首页 > 教程 > 帝国CMS教程帝国CMS教程
帝国CMS内容页怎么根据TAG匹配相关文章的方法
芍语2023-01-20 15:14:37帝国CMS教程已有人查阅
导读比如说有3个TAG,每个TAG下有4篇文章,现在指定要显示10篇文章,那么每个TAG要拿出4篇,共有12篇文章,最终会打乱这12篇文章,然后取10篇
功能:
比如说有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)?>
本文标签:
很赞哦! ()
相关文章
- dede织梦站内搜索和Tag标签不支持大写字母怎么办
- 织梦更新网站出现DedeCMS Error:Tag disabled:"php" more...!
- dede织梦统计tag个数的代码写法
- dede织梦多彩标签云实现标签Tag随机颜色和字体大小的代码
- IIS下实现dede织梦系统tag标签伪静态的方法
- dede织梦模板文章页根据tag调用相关内容代码
- dede织梦列表页调用TAG标签并带上链接的实现方法
- dedecms织梦文章页调用tag的方法
- dede织梦tag标签伪静态怎么修改
- dedecms织梦tag标签详解示例
- 织梦dedecms提示Error:Tag disabled:php的原因和解决方法
- dedecms系统TAG标签伪静态设置方法
随机图文
-
帝国cms好用吗,帝国CMS优势有哪些
EmpireCMS卓越之处在于:不仅提供了网站管理功能,而且还提供了系统扩展框架,您可以直接在后台通过新建表、自定义字段,然后组成新的系统模型 -
帝国7.5升级到PHP7+系列环境兼容的修改方法
帝国CMS7.5更新了对PHP7系列的支持,PHP7版本对PHP改动大,去掉了MYSQL扩展模块等,导致部分函数无法正常使用。因而,帝国CMS7.5新增对PHP7.*系列运行环境的支持, -
帝国CMS结合项分页数量怎么修改
帝国CMS结合项分页数量后台是没地方修改的,需要改文件代码来达到修改显示数量方法。结合项分页数量默认显示是10个,非常长,很丑,下面代码号教大家怎么修改。 -
帝国CMS无相关信息时调用其它信息的方法
帝国cms默认的[!--other.link--]标签调用相关链接时,如果没有相关链接的话,则会显示“暂无相关链接”。对于一些采集站或其他需要增加内链的网站来说
留言与评论 (共有 条评论) |