点击:

PHPCMS实现只调用当前站点推荐位文章的办法

来源:创想工作室   时间:2014-11-17

我们知道,PHPCMS默认的position标签可以实现调用推荐位的文章,因此,如果我们需要调用推荐位属性为首页头条推荐的话,可以用下面的标签实现
 
 
{pc:content action="position" posid="2" order="id DESC" num="1"}
{loop $data $r}
<h3><a href="{$r[url]}" target="_blank" title="{$r[title]}">{$r[title]}</a></h3>
<p>{str_cut($r[description],200,'..')}</p>
{/loop}  
{/pc}
 
然而如果你有用到站群功能的话,上面的标签会把子站的首页头条推荐的文章页显示出来,这是我们不想要的。我们再改动一下,在后面加上siteid="$siteid" 这个试试,也即
{pc:content action="position" posid="2" order="id DESC" num="1" siteid="$siteid"}
{loop $data $r}
<h3><a href="{$r[url]}" target="_blank" title="{$r[title]}">{$r[title]}</a></h3>
<p>{str_cut($r[description],200,'..')}</p>
{/loop}  
{/pc}
 
发现还是不行,siteid="$siteid"这个在推荐位标签失效,郁闷!算了,赞也没有时间去深入研究了,换个思路吧,我们用万能的get标签吧,最终实现我们要的效果。标签如下:
{pc:get sql="select `url`,`title`,`description` from `v9_position_data` a, `v9_news` b where a.id=b.id and a.posid='2' order by a.listorder desc" return="data" num="1" cache="3600"}
{loop $data $r}
<h3><a href="{$r[url]}" target="_blank" title="{$r[title]}">{$r[title]}</a></h3>
<p>{str_cut($r[description],200,'..')}</p>
{/loop}  
{/pc}
 
PS:我们还可以再往后拓展下去,上面的标签其实还可以实现分页效果哦,试试下面的代码吧!
{pc:get sql="select * from `v9_position_data` a, `v9_news` b where a.id=b.id and a.posid=推荐位ID order by a.listorder desc"  return="data" num="20" cache="3600" page="$_GET"}
<ul class="list lh24 f14">
{loop $data $r}
<li><span class="rt">{date('Y-m-d',$r[inputtime])}</span> <a href="{$r[url]}" target="_blank" >{$r[title]}</a></li>
{if $n%5==0}<li class="bk20 hr"></li>{/if}
{/loop}
</ul>
<div id="pages" class="text-c">{$pages}</div>
{/pc}