本文作者:云月怡

zblog如何实现同类上一篇下一篇文章

云月怡 10个月前 ( 11-27 ) 629 抢沙发

zblogphp系统默认是通过ID来展现上一篇,下一篇文章的,如果在同分类实现文章上一篇下一篇可能更有利于提高文章阅读的关联性,也有很多用户有这样的需求,现在来介绍一下实现方法:

1、在主题include.php文件最底部的?>上面添加以下代码:

PHP
function umtheme_PostPrev(&$goPage) {
    global $zbp;
    $prev=$goPage;
    $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 umtheme_PostNext(&$goPage) {
    global $zbp;
    $prev=$goPage;
    $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文件中找到ActivePlugin_主题ID函数,在函数中添加以下代码:

PHP
Add_Filter_Plugin('Filter_Plugin_Post_Prev', 'umtheme_PostPrev');Add_Filter_Plugin('Filter_Plugin_Post_Next', 'umtheme_PostNext');

保存include.php文件

3、在详情页模版post-single.php对应的位置添加以下分页代码即可

PHP
{if $article.Prev}
    <div class="prev"><span>上一篇:</span><a href="{$article.Prev.Url}" title="{$article.Prev.Title}">{$article.Prev.Title}</a></div>{/if}{if $article.Next}
    <div class="next"><span>下一篇:</span><a href="{$article.Next.Url}" title="{$article.Next.Title}">{$article.Next.Title}</a></div>{/if}

54.png

文章版权及转载声明

作者:云月怡本文地址:http://yunyueyi.cn/blog/3271.html发布于 10个月前 ( 11-27 )
文章转载或复制请以超链接形式并注明出处云月怡

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,629人围观)参与讨论

还没有评论,来说两句吧...