因为ZBLOGPHP兼容MYSQL和SQLITE两种数据库格式,部分早期代码无法直接同时兼容两种数据库,比如随机RAND函数,在MYSQL中使用就没问题,如果在SQLITE中使用需要使用RANDOM函数。

复制以下代码到主题的post-single.php文件或者其他合适的位置即可。

PHP
{$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));
    }
        switch ($zbp->option['ZC_DATABASE_TYPE']) {
            case 'mysql':
            case 'mysqli':
            case 'pdo_mysql':
                $order = array('RAND()'=>'');
            break;
            case 'sqlite':
            case 'sqlite3':
                $order = array('RANDOM()'=>'');
            break;
        }

    $array = $zbp->GetArticleList(array('*'),$where,$order,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}

需要注意的是,如果你的网站文章数量非常多,请不要使用上面提供的代码.

01-05 03:07
查看更多