帝国CMS使用灵动标签调用相关软件或者文章的写法
作者:快盘下载 人气:快盘下载为解决页面之间的关联性问题,很多软件需要通过关键词来匹配。不知道这个做seo行不行,要试试吧,用户体验是第一位的。使用帝国默认相关链接功能,需要用到模板页面,为了保持页面结构不发生变化。最方便的做法就是在原有的基础上进行灵动标签的修改。
示例:
https://www.kkpan.com/pcsoft/nordritools.html
问题和方案:
1、不修改原始模板,直接使用灵动标签进行修改。
2、关键词是用,号分割的。如何匹配。
摸索了半天,网上也搜索了一些文章。只提供了一些思路,非常感谢。如下:
标题包含关键字
①、比较粗糙的匹配,可能不太精确:title like '%$navinfor[keyboard]%'
②、精确的匹配,比较消耗资源:title regexp '(^|,)$navinfor[keyboard]($|,)'
关键字相同
①、比较粗糙的匹配,可能不太精确:keyboard like '%$navinfor[keyboard]%' ②、精确的匹配,比较消耗资源:keyboard regexp '(^|,)$navinfor[keyboard]($|,)'
进行测试,结果是思路可行。但是出现的问题是循环显示多个相同内容。
继续解决问题,再次感谢牛下载站长的大力支持。帮忙搞定了问题。代码贴出来分享给大家.
注释;id<>$navinfor[id]为在当前文章时排除调用当前文章,图上的忘记了。
<?php if($navinfor[keyboard]!=''){ $key_arr = explode(',',$navinfor[keyboard]); $ids = []; for($i = 0; $i<count($key_arr);$i++) { $key = $key_arr[$i]; $idarr = []; ?> [e:loop={"select * from kkpan_ecms_pc where keyboard like '%$key%' or title like '%$key%' and id<>'$navinfor[id]' order by newstime desc limit 6",6,24,0}] <?php $idarr[] = $bqr[id]; ?> [/e:loop] <?php //var_dump($idarr); $ids = array_merge($ids,$idarr); } //echo $ids; $ids = array_unique($ids); $ids = implode(",",$ids); //var_dump($ids); } if($ids !=''){ ?> [e:loop={"select * from kkpan_ecms_pc where id in (".$ids.") order by newstime desc limit 6",6,24,0}] <li><a target="_blank" href="<?=$bqsr[titleurl]?>"> <p><em><img src="<?=$bqr[titlepic]?>"></em></p> <strong><?=$bqr[title]?></strong><b><?=date('m-d',$bqr[newstime])?> / <?=$bqr[rjdx]?></b><i><img src="/moban/skin/new2018/images/s<?=$bqr[pingfen]?>.gif"></i></a></li> [/e:loop] <?php } ?>
如果需要需要隐藏没有数据是的div,请把div加到php文件里就搞定了。这个思路真的是太好了。
同样,该方法也可以用到文章模板里。具体代码也就不写了。照着写就可以了。
https://www.kkpan.com/article/2603.html
再次感谢 QQ 87715631 的大力支持。帝国很多功能改造都能搞定,比如百度编辑器水印啊,重复tags,查专题。虽然是收费,很合理。转发请注明出处,快盘下载,毕竟是花钱解决的问题。
加载全部内容