功能:
比如说有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里!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <?php functionuser_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 ( $tagarras $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( "selecttagid,numfrom{$dbtbpre}enewstagswheretagname='$v'" ); if ( $t [tagid]){ $sql = $empire ->query( "selectidfrom{$dbtbpre}enewstagsdatawheretagid=$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 ){ break2; } } if ( $t [num]> $num ){ $linshi = $t [tagid]; } } } if ( count ( $arr )>0){ $inid =implode( "," , $arr ); if ( count ( $arr )< $limit && $linshi ){ $sql = $empire ->query( "selectidfrom{$dbtbpre}enewstagsdatawheretagid=$linshiandidnotin($inid)" ); while ( $s = $empire ->fetch( $sql )){ $arr []= $s [id]; if ( count ( $arr )== $limit ){ break ; } } } $inid =implode( "," , $arr ); $str = "" ; $news = $empire ->query( "selectid,title,titleurl,titlepicfrom{$dbtbpre}ecms_{$tbname}whereidin($inid)" ); while ( $n = $empire ->fetch( $news )){ $str .= '<li><arel="nofollow noopener noreferrer" href="' . $n [titleurl]. '">' . $n [title]. '</a></li>' ; } } return $str ; } } ?> |
内容页用以下代码调用:5为显示数量自己改
1 | <?=user_otherlink(5)?> |
到此这篇关于帝国CMS内容页根据TAG匹配相关文章列表代码就介绍到这了。如果我想做成一件事,那么无论需要多长时间我都会努力去挤。更多相关帝国CMS内容页根据TAG匹配相关文章列表代码内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!