zblog文章内容页的上一篇、下一篇文章是根据文章的发布时间调用的,为了提高页面内容的关联性,以及zblog seo优化的考虑,通常会选择调用相同分类里的上一篇下一篇文章,遗憾的是zblog没有提供对应的标签代码,需要另外编写代码实现。
下面代码是提取zblog插件TcClassPost,该插件实现的功能便是调用相同分类里的上一篇、下一篇文章。
把代码放在主题的include.php文件:
PHP
function qiteen_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 qiteen_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; }}
在include.php文件中找到ActivePlugin_
开头的函数,在该函数中添加以下代码:
PHP
Add_Filter_Plugin('Filter_Plugin_Post_Prev', 'qiteen_Post_Prev');Add_Filter_Plugin('Filter_Plugin_Post_Next', 'qiteen_Post_Next');
如果主题原来没有调用上一篇、下一篇文章的代码,还需要在post-single.php(如果没有这个文件,可以尝试添加在single.php)文件添加代码:
PHP
{if $article.Prev}<p>上一篇:<a href="{$article.Prev.Url}" title="{$article.Prev.Title}">{$article.Prev.Title}</a></p>{/if}{if $article.Next}<p>下一篇: <a href="{$article.Next.Url}" title="{$article.Next.Title}">{$article.Next.Title}</a></p>{/if}
保存即可。
网友留言: