您现在的位置是: 首页 > 值得一看 > zblog教程

zblog教程

zblog主题调用热门文章、热评文章、最新文章、随即文章最全方法

老鱼网 时间:2022-07-06 阅读数:73

zblogPHP主题又用到了需要同时增加热门文章、热评论文、随即文章功能。

zblogPHP模板加入热门文章、热评文章、随机文章.png

一、可缓存、可分别设置条数、可分别指定分类的排行榜方法:

一、可缓存、可分别设置条数、可分别指定分类的排行榜方法:

//排行榜 随机 最新 热门 留言function ydblack_Get_Links( $type, $num, $tblogcate ) {
 global $zbp, $arrays, $order;
 //$str = '';
 $str = '';
 if ( $type == 'previous' ) {
  $order = array( 'log_PostTime' => 'DESC' );
 }
 if ( $type == 'hot' ) {
  $order = array( 'log_ViewNums' => 'DESC' );
 }
 if ( $type == 'comm' ) {
  $order = array( 'log_CommNums' => 'DESC' );
 }
 if ( $zbp->db->type == "sqlite" ) {
  if ( $type == 'rand' ) {
   $order = array( 'random()' => '' );
  }
 } else {
  if ( $type == 'rand' ) {
   $order = array( 'rand()' => '' );
  }
 }
 $stime = time();
 $ytime = ( 24 ) * 30 * 24 * 60 * 60; //时间可以控制
 $ztime = $stime - $ytime;
 if ( empty( $tblogcate ) ) {
  $where = array( array( '=', 'log_Status', '0' ), array( '>', 'log_PostTime', $ztime ) );
 } else {
  $where = array( array( '=', 'log_Status', '0' ), array( '>', 'log_PostTime', $ztime ), array( '=', 'log_CateID', $tblogcate ) );
 }
 $str = $zbp->GetArticleList( array( '*' ), $where, $order, array( $num ), '' ); //注意 $str// if ( $type == 'rand' ) { //随机//  foreach ( $array as $article ) {//   $str .= '//   <li>//    <h3><a href="'.$article->Url.'">'.$article->Title.'</a></h3>//    <span><a href="'.$article->Author->Url.'">'.$article->Author->StaticName.'</a></span><i>'.$article->Time('Y-m-d').'</i>//   </li>//   ';//  }// }
 return $str;}//随机文章 ========================因为随机不需要缓存,可以在模板中写调用!//function ydblack_randpost() {// global $zbp;// $s = '';// $array = ydblack_Get_Links( 'previous', '4', '1' );// foreach ( $array as $article ) {//  $s .= '<li><a href="' . $article->Url . '">' . $article->Title . '</a></li>';// }// return $s;//}//生成 最新文章缓存function ydblack_previouspost() {
 global $zbp;
 $s = '';
 $array = ydblack_Get_Links( 'previous', '4', '1' );
 foreach ( $array as $article ) {
  $s .= '<li><a href="' . $article->Url . '">' . $article->Title . '</a></li>';
 }
 //$s .= '<!--您所查看的是ydblack 最新文章缓存,缓存时间'.date('Y-m-d h:i:sa',time()).'-->';
 file_put_contents($zbp->usersdir . 'cache/ydblack_previouspost.txt', $s);
 return $s;}//获取 最新文章缓存文件function ydblack_previouspost_Cache(){
 global $zbp;
 if (is_file($zbp->usersdir . 'cache/ydblack_previouspost.txt')==true){
  $str = file_get_contents($zbp->usersdir . 'cache/ydblack_previouspost.txt');
 }else{
  $str = '<li>请重新提交下任意一篇文章,删除也行,因本栏带缓存!!!</li>'; 
 }
 return $str;}

随机部分写在模板中的方法:

{$array = ydblack_Get_Links( 'rand', '4', '1' );}
{foreach $array as $related}  <li><h3><a href="{$article.Url}">{$article.Title}</a></h3>
<span><a href="{$article.Author.Url}">{$article.Author.StaticName}</a></span><i>{$article.Time('Y-m-d')}</i></li>{/foreach}

最新、热门、留言发文/删除时更新缓存方法:

挂:

Add_Filter_Plugin('Filter_Plugin_PostArticle_Succeed','ydblack_previouspost');//提交更新
Add_Filter_Plugin('Filter_Plugin_DelArticle_Succeed','ydblack_previouspost');//删除更新

最新、热门、留言调用代码:

ydblack_previouspost_Cache()

二、不缓存、直接、简单的调用方法

//hot comm randfunction ydlinux_Get_Links($type,$num){
    global $zbp,$str,$order;
    $str = '';
 if($type=='previous'){
        $order = array('log_PostTime'=>'DESC');
    }
    if($type=='hot'){
        $order = array('log_ViewNums'=>'DESC');
    }
    if($type=='comm'){
        $order = array('log_CommNums'=>'DESC');
    }
 if ($zbp->db->type=="sqlite"){

 if($type=='rand'){
        $order = array('random()'=>'');
    } 
    }
 else 
   {
 if($type=='rand'){
        $order = array('rand()'=>'');
    }
    }
    $where = array(array('=','log_Status','0'));
    $array = $zbp->GetArticleList(array('*'),$where,$order,array($num),'');
    foreach ($array as $key=>$article) {
 $i = $key+1;
        $str.= '<li class="sidelist'.$i.'"><a target="_blank" href="' .$article->Url. '">' .$article->Title. '</a></li>';
    }
  return $str;}//function ydlinux_hotpost() {
 global $zbp;
 $s = '';
 $s.= ydlinux_Get_Links('hot',"9");
 return $s;}function ydlinux_commpost() {
 global $zbp;
 $s = '';
 $s.= ydlinux_Get_Links('comm',"9");
 return $s;}function ydlinux_randpost() {
 global $zbp;
 $s = '';
 $s.= ydlinux_Get_Links('rand',"9");
 return $s;}

排行榜无缓存.png

下面分享出来代码,是从zblogphp开发者@涂涂主题中复制过来:

//主函数function tblog5_Get_Links($type,$num,$tblogcate,$tblogThumb){

    global $zbp,$str,$order;

    $str = '';

 if($type=='previous'){

        $order = array('log_PostTime'=>'DESC');

    }

    if($type=='hot'){

        $order = array('log_ViewNums'=>'DESC');

    }

    if($type=='comm'){

        $order = array('log_CommNums'=>'DESC');

    }

 if ($zbp->db->type=="sqlite"){

  

 if($type=='rand'){

        $order = array('random()'=>'');

    } 

    }

 else 

   {

 if($type=='rand'){

        $order = array('rand()'=>'');

    }

    }

 

 $stime = time();

    $ytime = ($zbp->Config('tblog5')->months)*30*24*60*60;

    $ztime = $stime-$ytime;

    

    if (empty($tblogcate)){

    $where = array(array('=','log_Status','0'),array('>','log_PostTime',$ztime));

 }

 else {

 $where = array(array('=','log_Status','0'),array('>','log_PostTime',$ztime),array('=','log_CateID',$tblogcate));

 }

 

    $array = $zbp->GetArticleList(array('*'),$where,$order,array($num),'');

    foreach ($array as $article) {

 

 if ($tblogThumb=="1"){

  $clsjtp=tblog5_firstimg($article);

   $str .='<a href="'.$article->Url.'" class="_ajx ease sb-border"><img width="160" height="130" src="'.$clsjtp.'" class="attachment-post-thumbnail wp-post-image" alt="'.$article->Title.'"><span class="publish">'.$article->Time('Y-m-d').'</span><span>'.$article->Title.'</span></a>';

    }

 else{

  $str .='<a href="'.$article->Url.'" class="_ajx ease sb-border sb_wt"><span class="publish">'.$article->Time('Y-m-d').'</span><span>'.$article->Title.'</span></a>';

 }

  

   

    }

  return $str;

 }//缓存路径function tblog5_previouspost() {

 global $zbp;

 $s = '';

 $s.= tblog5_Get_Links('previous',"5",$zbp->Config('tblog5')->previouscate,$zbp->Config('tblog5')->previousdisplay);

    $s .= '<!--您所查看的是tblog5 最新文章缓存,缓存时间'.date('Y-m-d h:i:sa',time()).'-->';

    file_put_contents($zbp->usersdir . 'cache/tblog5_previouspost.txt', $s); }function tblog5_randpost() {

 global $zbp;

 $s = '';

 $s.= tblog5_Get_Links('rand',"5",$zbp->Config('tblog5')->randcate,$zbp->Config('tblog5')->randdisplay);

 return $s;}function tblog5_hotpost() {

 global $zbp;

 $s = '';

 $s.= tblog5_Get_Links('hot',"5",$zbp->Config('tblog5')->hotcate,$zbp->Config('tblog5')->hotdisplay);

    $s .= '<!--您所查看的是tblog5 热门文章缓存,缓存时间'.date('Y-m-d h:i:sa',time()).'-->';

    file_put_contents($zbp->usersdir . 'cache/tblog5_hotpost.txt', $s);}function tblog5_commentpost() {

 global $zbp;

 $s = '';

 $s.= tblog5_Get_Links('comm',"5",$zbp->Config('tblog5')->commcate,$zbp->Config('tblog5')->commdisplay);

    $s .= '<!--您所查看的是tblog5 热评文章缓存,缓存时间'.date('Y-m-d h:i:sa',time()).'-->';

    file_put_contents($zbp->usersdir . 'cache/tblog5_commentpost.txt', $s);}//获取路径function tblog5_previouspost_Cache(){

 global $zbp;

 if (is_file($zbp->usersdir . 'cache/tblog5_previouspost.txt')==true){

 $str=file_get_contents($zbp->usersdir . 'cache/tblog5_previouspost.txt');

 }else{

 $str='<li>请重新提交下任意一篇文章,删除也行!!!</li>'; 

 }

 return $str;}function tblog5_commentpost_Cache(){global $zbp;

    if (is_file($zbp->usersdir . 'cache/tblog5_commentpost.txt')==true){

 $str=file_get_contents($zbp->usersdir . 'cache/tblog5_commentpost.txt');

 }

 else{

   $str=tblog5_commentpost_Cache2();

   }

   return $str;}function tblog5_commentpost_Cache2(){global $zbp;

 $s = '';

 $s.= tblog5_Get_Links('comm',5,$zbp->Config('tblog5')->commcate,$zbp->Config('tblog5')->commdisplay);

 return $s;}function tblog5_hotpost_Cache(){global $zbp;

    if (is_file($zbp->usersdir . 'cache/tblog5_hotpost.txt')==true){

 $str=file_get_contents($zbp->usersdir . 'cache/tblog5_hotpost.txt');

 }

 else{

 $str='<li>请留言一下</li>';}

 return $str;}

调用方法:

随机文章:{php}echo tblog5_randpost(){/php}
热评文章:{php}echo tblog5_commentpost_Cache(){/php}
热门文章:{php}echo tblog5_hotpost_Cache(){/php}
最新文章:{php}echo tblog5_previouspost_Cache(){/php}

可能喜欢