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}保存即可。



0 留言