开始有写过类似的文章,但是好像不是很全面,现在重新更新升级一下。
首先需要知道的是:phpcms v9,不是其他版本。
我们查询本文的相关文章是通过关键词去查询,而其他的方法就不是很完美,甚至需要自己去后台才能调用出来,那么怎么让自动去获取关键词相同的文章呢?
代码码上:
这是通过手动在后台添加文章,从而达到相关文章的办法。
这个方法对我来说就是鸡肋,但是对特定情况下说,还是比较方便的。
现在说通过关键词直接调用关键词,获取相关文章。
{loop $keywords $keyword}
{pc:get sql="SELECT * FROM v9_keyword where keyword = '$keyword' " return="datatag" num="1"}
{loop $datatag $r}
{php $ii++}
{pc:get sql="SELECT * FROM v9_news where keywords like '$r[keyword]%'" num="4"}
{loop $data $r}
{if $r[title] == $title}
{else}
<div class="lb_2">
<em class="iconfont"></em>
<a href="{$r[url]}" title="{$r[title]}" target="_blank" class="chao lb_a">{$r[title]}<time>{date('m-d',$r[inputtime])}</time></a>
</div>
{/if}
{/loop}
{/pc}
{php if($ii==1)break;}
{/loop}
{/pc}
{/loop}
Tips:为了不被自动被站点转译掉,自己手动去掉标签的空格。
这个是使用在内容页的方法。
以上方法有点局限,现在更新一下:2021/9/10
{php $keyword = $keywords[0]}
{pc:get sql="SELECT * FROM v9_keyword where keyword = '$keyword' " return="data" num="1"}
{php $keyword = $data[0][keyword]}
{/pc}
{pc:get sql="SELECT * FROM v9_news where description like '%$keyword%' and thumb != ''" num="4" moreinfo="1"}
{php $sz = count($data)}
{/pc}
{if $sz < 5}
{pc:get sql="SELECT * FROM v9_news where thumb != '' order by rand()" num="4" moreinfo="1" cache="3600"}
{loop $data $r}
<li class="transition"> <a href="{$r[url]}" target="_self">
<img class="lazy" src="{$r[thumb]}" width="282" height="175" alt="{$r[title]}" /></a>
<p><a href="{$r[url]}" title="{$r[title]}" target="_self">{$r[title]}</a></p>
</li>
{/loop}
{/pc}
{else}
{pc:get sql="SELECT * FROM v9_news where description like '%$keyword%' and thumb != ''" num="4" moreinfo="1"}
{loop $data $r}
{if $r[title] != $title}
<li class="transition"> <a href="{$r[url]}" target="_self">
<img class="lazy" src="{$r[thumb]}" width="282" height="175" alt="{$r[title]}" /></a>
<p><a href="{$r[url]}" title="{$r[title]}" target="_self">{$r[title]}</a></p>
</li>
{/if}
{/loop}
{/pc}
{/if}{php $keyword = $keywords[0]}
{pc:get sql="SELECT * FROM v9_keyword where keyword = '$keyword' " return="data" num="1"}
{php $keyword = $data[0][keyword]}
{/pc}
{pc:get sql="SELECT * FROM v9_news where keywords like '%$keyword%' and thumb != ''" num="4"}
{loop $data $r}
{if $r[title] != $title}
<li class="transition"> <a href="{$r[url]}"><img class="lazy" src="{$r[thumb]}" width="282" height="175" alt="{$r[title]}" /></a>
<p><a href="{$r[url]}" title="{$r[title]}">{$r[title]}</a></p>
</li>
{/if}
{/loop}
{/pc}
这个方法比上面的方法稍微好一点,可控,还缩减了部分可减免的代码。