接触逐浪CMS至今估算得有3年之久吧,我是一直专注于逐浪CMS商城系统的。
今天这个主题还要感谢重器网站长@东北小学生,他对建站的耐心令我折服。
目标效果:文章内容页添加如下图的相关文章的一个模块效果。其规则是根据当前这篇文章所设定的标签(关键词)匹配站内其他设置了相同关键词的文章
实现的要点:需要用到逐浪CMS提供的一个内置的(应该叫)功能标签{ZL:GetKeyWord(@KeyWord)/}
实现过程:这个在最新版的逐浪CMS里,已经默认做好了一个标签,
(系统->标签管理->搜索"相关")可以找到
接下来只需要将这个标签引用,放到模板相应的位置即可。
——————————重点了—————————————
当遇到具体的需求时,你肯定就会发现,这个标签可能不会达到你想要的效果,这是为什么呢?
官方默认的这个标签呢,可以说没有任何的条件限制,只要是设定了相同的关键词,不管你是文章,还是视频,还是商品,(尽管我没有一一测试)我相信它都会出现在相关文章里。这该怎么办呢?
拿重器网的这个功能来举例:
想要单纯的只显示相关文章,毫无疑问我们要加一个限定条件,文章所在的栏目ID或者是其他的限定条件。
那就加个条件,只显示顶级栏目节点ID为3的栏目下的内容。
然并卵…………
你发现,你想要的效果会显示的乱七八糟,啥内容都有,你加的条件没起到任何作用。
为什么,为什么,为什么?
—————————我写帖子的最大特点就是啰嗦,正题才刚刚开始^_^———————————————
{ZL:GetKeyWord(@KeyWord)/}这个标签执行后的效果就是
select * from ZL_CommonModel where tagKey like '%关键词1%' OR tagKey like '%关键词2%' tagKey like '%关键词3%' and Status=99
“科普一下”,在t-sql语法里,条件的执行优先顺序是 not and or。当遇到or关键字时,会把条件分成左右两部,然后优先执行and的那部分。试想结果肯定就不是我们想要的了。
解决办法自然是很简单的。这样改一下:
select * from ZL_CommonModel where (tagKey like '%关键词1%' OR tagKey like '%关键词2%' tagKey like '%关键词3%' ) and Status=99
给框选的这段加上括号,结果嘛,自己试一下喽(不行你再找我^_^)。如此一来,你想要再添加任何限制条件,就直接跟后面添加即可。
对了,补充一下,制作标签时也就是需要给{ZL:GetKeyWord(@KeyWord)/}这个函数加上括号,如下图
OK,啰嗦得瑟完毕,有用没用的,既然来了,支持一个回复,不胜感激!
_______________________________________________________________________