ZblogPHP相关文章,热门文章,随机文章的代码
在zblogPHP主题模版中,大部分好一点的模板可以不用通过插件自我实现相关文章、热门文章、随机文章的功能。今天,在经历了N久无奈的测试后,我在BAndW模版中也实现了相关功能。因为部分在wiki里面不完善,所以自己收集整理了下分享给大家,希望大家喜欢。
相关文章调用:
{$aid=$article.ID}
{$tagid=$article.Tags}
{$cid=$article.Category.ID}
{php}
$str="";
$tagrd=array_rand($tagid);
if( sizeof($tagid)>0 && ($tagid[$tagrd]->Count)>1){
$tagi='%{'.$tagrd.'}%';
$where = array(array('=','log_Status','0'),array('like','log_Tag',$tagi),array('<>','log_ID',$aid));
}else{
$where = array(array('=','log_Status','0'),array('=','log_CateID',$cid),array('<>','log_ID',$aid));
}
$array = $zbp->GetArticleList(array('*'),$where,array('rand()'=>' '),array(10),'');
foreach ($array as $related) {
if(($related->ID)!=$aid){
$str .= "<li><a href=\"{$related->Url}\" title=\"{$related->Title}\">{$related->Title}</a></li>";
}
}
{/php}
{$str}
这段代码在zblogPHP的Wiki中就有,一共是两种,第一种是这样的,第二种是通过getlist函数来实现的。相对而言,上面这种方案给优秀的,因为它考虑了多个tags的关联。不过wiki的代码中,没有str=”的前提判断,在运行时会出现错误,我们做模板的大部分都增加了,等待谁去更正Wiki吧。
热门文章调用:
{php}
$stime = time();
$ytime = 91*24*60*60;
$ztime = $stime-$ytime;
$order = array('log_ViewNums'=>'DESC');
$where = array(array('=','log_Status','0'),array('>','log_PostTime',$ztime));
$array = $zbp->GetArticleList(array('*'),$where,$order,array(10),'');
{/php}
{foreach $array as $hotpage}
<li><a href="{$hotpage.Url}" title="{$hotpage.Title}">{$hotpage.Title}</a></li>
{/foreach}
这是偷的蛋蛋的,虽然不知道是不是他原创,不过的确好用。其中的91是热门文章的天数,这个数字可以根据自己的需要设置,建议不要太大,占运行的。我测试时开始没注意,一直以为不好用呢。
随机文章调用:
function Nobird_Theme_Get_Rand(){
global $zbp,$str,$order;
$str='';
$sql = $zbp->db->sql->Select(
$zbp->table['Post'],
array("MIN(log_ID)","MAX(log_ID)"),
array(
array('=', 'log_Type', '0'),
array('=', 'log_Status', '0'),
),
array('log_PostTime' => 'ASC'),
null,
null
);
$array = $zbp->db->Query($sql);
$i=mt_rand($array[0]["MIN(log_ID)"],$array[0]["MAX(log_ID)"]);
$order = '';
$where = array(
array('=','log_Status','0'),
array('>','log_ID',$i)
);
$array = $zbp->GetArticleList(array('*'),$where,$order,array(5),'');
foreach ($array as $key=>$article) {
if($key>5){
break;
}
$str .='<li><a href="'.$article->Url.'">'.$article->Title.'</a></li>';
}
return $str;
}
偷的鸟的,没有尝试过到底好不好用,有需要的朋友可以使用下。不过隐约的感觉太占内存了,所以主题中没有使用相关的调用。
最近文章调用:
请参考zblogPHP辅助函数:GetList 函数。学会这个,能解决不少问题呢。
- QQ群:253510359
- 建议:VPS商家层出不穷,根据需要购买,切莫剁剁剁!
- 评测:很多VPS虽已评测,但网络环境改变稳定性,速度也会随之改变.评测只能作为一般性参考.不负任何法律,道义责任.
- 申明:所有vps,域名,服务器优惠信息均来自网络公开内容,由于水平有限不免有谬误.请以官方为准.