ZBlog文章页上一篇、下一篇文章默认调用方式是根据文章发布时间,分别显示居于当前文章发布时间之前和之后各一篇文章,这样的调用方式就有可能出现上一篇、下一篇文章和当前文章的关联性不大的情况。而关联性强的文章一般是同分类或同标签的文章。
ZBlog后台 创建一个插件。
然后修改include.php
<?php RegisterPlugin("xxxxTools","ActivePlugin_xxxxTools"); function ActivePlugin_xxxxTools() { Add_Filter_Plugin('Filter_Plugin_Post_Prev', 'xxxxTools_Post_Prev'); Add_Filter_Plugin('Filter_Plugin_Post_Next', 'xxxxTools_Post_Next'); } function xxxxTools_Post_Prev(&$tcthis) { global $zbp; $prev=$tcthis; $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 xxxxTools_Post_Next(&$tcthis) { global $zbp; $prev=$tcthis; $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; } } function InstallPlugin_xxxxTools() { } function UninstallPlugin_xxxxTools() { }
然后插件管理处启动插件即可。
如果当前主题没有调用上一篇、下一篇文章,可以在zb_user/theme/主题名称/template/post-single.php文件中添加以下代码:
{if $article.Prev}<div>上一篇:<a href="{$article.Prev.Url}" title="{$article.Prev.Title}">{$article.Prev.Title}</a></div>{/if} {if $article.Next}<div>下一篇:<a href="{$article.Next.Url}" title="{$article.Next.Title}">{$article.Next.Title}</a></div>{/if}
添加成功后,在后台首页点击“[清空缓存并重新编译模板]”。
请赞赏
朋友,创作不易;为犒赏小编的辛勤劳动,请她喝杯咖啡吧!
给她赞赏,您将财运亨通