ZblogPHP通过TAG调用相关文章

Zblog 思享 734浏览

相关文章是提升页面价值的一种有效手段。一般实现方式有两种,一种是调用同分类最新/随机文章。另外一种方式就是通过TAG调用相同TAG的文章,那么Zblogphp版本是怎么实现的呢?

zblog

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调用某个分类的随机文章

推荐阅读

zblog报错Table‘zbp_post’is marked as crashed and should be repaired

最近有很多网友问我在Z-BlogPHP中报错“mysqli_query():: Table 'zbp_post' is marked as crashed and should be repaired”是什么意思,如何解决?报错界面如下图所示。这可能......

myqsl命令删除zblog文章少于2条的tag标签

背景:之前用腾讯的自动标签,不知道是接入的问题还是腾讯云的问题,导致很多tag标签质量很差。一方面会占用系统资源,另一方面会对内容的调用造成额外的压力,调用相关文章非常困难。所以我打算删除一些文章很少的tag标签。...

sql查询zblog数据库中最大文章id

zblog如何检查数据库中的最大id,利用mysql自带的max函数得到最大值?下面的代码“log_id”是指字段名,“id”是指返回给id的查询值,“zbp_post”是指数据表名。$ SQL = " SELECT MAX AS id FROM z......