相关文章是提升页面价值的一种有效手段。一般实现方式有两种,一种是调用同分类最新/随机文章。另外一种方式就是通过TAG调用相同TAG的文章,那么Zblogphp版本是怎么实现的呢?
TAG相关文章
方法一
这个方法是zblog官方比较推荐的。
{$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(6),'');
foreach ($array as $related) {
if(($related->ID)!=$aid){
$str .= "<li><span class=\"time\">{$related->Time('m-d')}</span><span class=\"title\"><i class=\"icon-doc-text\"></i><a href=\"{$related->Url}\" title=\"{$related->Title}\">{$related->Title}</a></span><small class=\"pcomm\"><i class=\"icon-comment-1\"></i> <a href=\"{$related->Url}#comments\" rel=\"nofollow\" title=\"《{$related->Title}》上的评论\">{$related->CommNums}</a></small></li>";
}
}{/php}{$str}
方法二
{foreach GetList(10,null,null,null,null,null,array('is_related'=>$article.ID)) as $related}
<li><span>{$related.Time('Y-m-d')}</span><a href="{$related.Url}">{$related.Title}</a></li>
{/foreach}
通过zBlog文章GetList 函数说明,我们可以扩展调用某一分类下的tag相关文章
{foreach GetList(10,2,null,null,null,null,array('is_related'=>$article.ID,'has_subcate' => true, 'order_custom' => array('rand()'=>' '))) as $related}
<li><span>{$related.Time('Y-m-d')}</span><a href="{$related.Url}">{$related.Title}</a></li>
{/foreach}
其中10表示调用10篇文章,2表示分类ID为2,has_subcate参数是否包含子孙目录,order_custom参数为排序。即上面的代码实现的是分类为2(包含2的子分类)相同TAG内容随机排序后调用10篇文章
除此之外,我们还可以添加{if $article.Tags}判断,如果没有TAG用最新/随机的方式实现相关文章,有则用上面tag调用相关文章的方法
同分类最新文章
{foreach GetList(5,$article.Category.ID) as $related}
<li><span class="time">{$related.Time('m-d')}</span><span class="title"><a href="{$related.Url}" title="{$related.Title}">{$related.Title}</a></span></li>
{/foreach}
其中5为调用数量,推荐阅读《ZblogPHP调用某个分类的随机文章》
转载请注明:思享SEO博客 » ZblogPHP通过TAG调用相关文章