ZBLOG PHP调用随机文章、热门文章、热评文章脚本方法

在定制ZBLOG PHP模板的过程中,可能有需要用到调用随机文章热门文章等解决方法,这里本站有看到@唐朝同学博客中有这样的脚本整理。我这边也转载过来,下次有使用的时候再测试实用性,如果有问题在进行更新。

使用方法:

第一、在我们的主题目录中需要创建include.php文件,如果有就直接添加脚本

/** * 获取文章列表 * @param int $count 数量 * @param null $cate 分类ID * @param null $auth 用户ID * @param null $date 日期 * @param null $tags 标签 * @param null $search 搜索关键词 * @param null $order 排序 * @param null $option * @return array|mixed */ function TcgetList($count = 10, $cate = null, $auth = null, $date = null, $tags = null, $search = null, $option = null,$order=null) { global $zbp;

if (!is_array($option)) { $option = array(); }

if (!isset($option[\’only_ontop\’])) $option[\’only_ontop\’] = false; if (!isset($option[\’only_not_ontop\’])) $option[\’only_not_ontop\’] = false; if (!isset($option[\’has_subcate\’])) $option[\’has_subcate\’] = false; if (!isset($option[\’is_related\’])) $option[\’is_related\’] = false;

if ($option[\’is_related\’]) { $at = $zbp->GetPostByID($option[\’is_related\’]); $tags = $at->Tags; if (!$tags) return array(); $count = $count + 1; }

if ($option[\’only_ontop\’] == true) { $w[] = array(\’=\’, \’log_IsTop\’, 0); } elseif ($option[\’only_not_ontop\’] == true) { $w[] = array(\’=\’, \’log_IsTop\’, 1); }

$w = array(); $w[] = array(\’=\’, \’log_Status\’, 0);

$articles = array();

if (!is_null($cate)) { $category = new Category; $category = $zbp->GetCategoryByID($cate);

if ($category->ID > 0) {

if (!$option[\’has_subcate\’]) { $w[] = array(\’=\’, \’log_CateID\’, $category->ID); } else { $arysubcate = array(); $arysubcate[] = array(\’log_CateID\’, $category->ID); foreach ($zbp->categorys[$category->ID]->SubCategorys as $subcate) { $arysubcate[] = array(\’log_CateID\’, $subcate->ID); } $w[] = array(\’array\’, $arysubcate);

}

} }

if (!is_null($auth)) { $author = new Member; $author = $zbp->GetMemberByID($auth);

if ($author->ID > 0) { $w[] = array(\’=\’, \’log_AuthorID\’, $author->ID); } }

if (!is_null($date)) { $datetime = strtotime($date); if ($datetime) { $datetitle = str_replace(array(\’%y%\’, \’%m%\’), array(date(\’Y\’, $datetime), date(\’n\’, $datetime)), $zbp->lang[\’msg\’][\’year_month\’]); $w[] = array(\’BETWEEN\’, \’log_PostTime\’, $datetime, strtotime(\’+1 month\’, $datetime)); } }

if (!is_null($tags)) { $tag = new Tag; if (is_array($tags)) { $ta = array(); foreach ($tags as $t) { $ta[] = array(\’log_Tag\’, \’%{\’ . $t->ID . \’}%\’); } $w[] = array(\’array_like\’, $ta); unset($ta); } else { if (is_int($tags)) { $tag = $zbp->GetTagByID($tags); } else { $tag = $zbp->GetTagByAliasOrName($tags); } if ($tag->ID > 0) { $w[] = array(\’LIKE\’, \’log_Tag\’, \’%{\’ . $tag->ID . \’}%\’); } } }

if (is_string($search)) { $search=trim($search); if ($search!==\’\’) { $w[] = array(\’search\’, \’log_Content\’, \’log_Intro\’, \’log_Title\’, $search); } }

if(!empty($order)){ if($order==\’new\’){ $order = array(\’log_PostTime\’=>\’DESC\’); } if($order==\’hot\’){ $order = array(\’log_ViewNums\’=>\’DESC\’); } if($order==\’comm\’){ $order = array(\’log_CommNums\’=>\’DESC\’); } if($order==\’rand\’){ $order = array(\’rand()\’=>\’ \’); } }

$articles = $zbp->GetArticleList(\’*\’, $w, $order, $count, null, false);

if ($option[\’is_related\’]) { foreach ($articles as $k => $a) { if ($a->ID == $option[\’is_related\’]) unset($articles[$k]); } if (count($articles) == $count){ array_pop($articles); } }

return $articles;

}

然后就是在我们需要的界面模板中调用。

A – 随机文章

{$array=TcgetList(10,null,null,null,null,null,null,\’rand\’);}

    {foreach $array as $related}
  • {$related.Time(\’m-d\’)}{$related.Title}
  • {/foreach}

随机10篇文章

B – 热门文章

{$array=TcgetList(10,null,null,null,null,null,null,\’hot\’);}

    {foreach $array as $related}
  • {$related.Time(\’m-d\’)}{$related.Title}
  • {/foreach}

调用10篇热门文章

C – 热评文章

{$array=TcgetList(10,null,null,null,null,null,null,\’comm\’;}

    {foreach $array as $related}
  • {$related.Time(\’m-d\’)}{$related.Title}
  • {/foreach}

调用10篇热评文章。

具体的根据我们实际使用调用就可以。

推荐站内搜索:免费的网站服务器、域名查询工具、域名注册信息查询、主机合租、到期已备案域名、域名信息查询、美国免费主机、外国主机动态拨号vps主机、台湾服务器租用、