我们在设计ZBLOG PHP主题的时候,单篇文章下面或者合适的位置一般会调用当前文章相关文档的。一般我们采用的是相似TAG标签随机调用,或者我们调用当前分类的随机文章。或者我们如果是开放平台有多用户编辑的,一般在当前用户编辑下显示这个用户的其他文章。
我们这几天在开发客户主题的时候有需要用到这个功能,老蒋把ZBLOG PHP主题中相关文章调用的方法一并整理出来,便于小梁同学开发主题的时候参考使用。
1、常规官方TAG标签调用
{$array=GetList($zbp->option['ZC_RELATEDLIST_COUNT'],null,null,null,null,null,array('is_related'=>$article->ID));}
这个是来自官方的方法调用TAG标签相关文章。
2、同分类相关文章
您可能还在找这些内容:
{foreach GetList(6,$article.Category.ID) as $related}
{$related.Title}</a><span class="badge">{$related.Time('m-d')}
{/foreach}
这是老蒋常用的调用方法。
3、同开发者相关文章
{$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 ), '' );
{/php}
{foreach $array as $related}
<div class="img"><img src={ydbaijia_thumbnail($related)} alt="{$related.Title}"></div>
<p>{$related.Title}</p>
{/foreach}
一般这个是用于多用户编辑的时候。
参考文章:
1、https://www.itbulu.com/zbp-related-next.html
2、http://www.yzktw.com.cn/post/268.html