首页 九天日记正文

zblogphp文章页调用同分类上下篇的代码

zblogphp官方默认的上下篇文章是按文章ID顺序的,没有判断区分是否同分类文章,使用同分类的上下篇文章有利于提高文章的关联性,增加阅读体验,在应用中心有免费的插件可供使用,日记坊不想使用太多的插件,所以自行手工增加这个功能,这个代码是全部ZB程序通用的,记录如下:

1、首先在主题文件include.php中加入如下代码,不用区分位置,各看官请随意:

function Post_Prev(&$getthis) {
   global $zbp;
   $prev=$getthis;
   $articles = $zbp->GetPostList(
       array('*'),
       array(array('=', 'log_Type', 0), array('=', 'log_CateID', $prev->Category->ID),array('=', 'log_Status', 0), array('<', 'log_PostTime', $prev->PostTime)),
       array('log_PostTime' => 'DESC'),
       array(1),
       null
   );
   if (count($articles) == 1) {
       return $articles[0];
   } else {
       return null;
   }} function Post_Next(&$getthis) {
   global $zbp;
   $prev=$getthis;
   $articles = $zbp->GetPostList(
       array('*'),
       array(array('=', 'log_Type', 0), array('=', 'log_CateID', $prev->Category->ID),array('=', 'log_Status', 0), array('>', 'log_PostTime', $prev->PostTime)),
       array('log_PostTime' => 'ASC'),
       array(1),
       null
   );
   if (count($articles) == 1) {
       return $articles[0];
   } else {
       return null;
   }
}

2、在同一include.php文件中加入如下判断函数,位置也随意,日记坊是加在上段代码的下方:

Add_filter_Plugin('Filter_Plugin_Post_Prev', 'Post_Prev');

Add_Filter_Plugin('Filter_Plugin_Post_Next', 'Post_Next');

3、点保存即可,再看看你的文章页,同分类上下篇已经起作用了;如果你的模板文件没有上下篇功能,请看第4点;

4、在文章页添加调用代码

找到你程序的文章模板,文件名一般是"post-single.php",在代码"{$article.Content}"下方的<div>标签之前增加如下代码:

 <div class="tiask">
         <ul>
           <li class="lr">上一篇:{if $article.Prev}
              <a  href="{$article.Prev.Url}" title="{$article.Prev.Title}">{$article.Prev.Title}</a>
              {else}没有了{/if}
           </li>
           <li class="fr ziyou">下一篇:{if $article.Next}
              <a  href="{$article.Next.Url}" title="{$article.Next.Title}">{$article.Next.Title}</a>
              {else}没有了{/if}
           </li>
         </ul>
       </div>

日记坊这里是使用了样式标签,代码是模板原作者添加的,未作改变;你也可以不需要使用上述样式代码,在"{$article.Content}"代码下方的<div>标签之前添加下述代码即可:

上一篇:{if $article.Prev} <a  href="{$article.Prev.Url}" title="{$article.Prev.Title}">{$article.Prev.Title}</a>{else}没有了{/if}

下一篇:{if $article.Next}<a  href="{$article.Next.Url}" title="{$article.Next.Title}">{$article.Next.Title}</a>{else}没有了{/if}

样式是跟文章内容一样的,代码包含判断是否为第一篇或是最后一篇,如果是,则显示无上下篇文章名;

注:如果你使用了zsx的主题编辑器插件后,以上均可以在后台直接更改;

打赏
  • 文章发表:九天
  • 本文地址:https://rijifang.com/index.php/post/5031.html
  • 声       明:转载请注明出处和附带本文链接!文章部份资料来自于网络,版权归原作者,尊重原创,注重分享;如涉版权问题,请联系本站删除!