TE获取上一篇/下一篇的链接

typecho教程 2020-08-25

  文章上一篇与下一篇调用代码:

  thePrev(); ?> theNext(); ?>

  或者

  thePrev(‘上一篇 : %s’, ‘没有上一篇’); ?>

  theNext(‘下一篇 : %s’, ‘没有下一篇’); ?>

  这样的会输出同时文章的标题和链接,不是很利于加样式。

  不过1.0版的typecho,已经支持更灵活的上下文输出:

  $this->thePrev($format = ‘%s’, $default = NULL, $custom = array(

  ’title’ => ”,

  ’tagClass’ => ”

  ));

  $custom 数组部分即为自定义内容,目前支持给上下文链接添加自定义的 CSS 类名、及输出文字,文字部分支持 html 代码:

  $this->thePrev(‘%s’, NULL, array(‘title’ => ‘一篇‘, ‘tagClass’ => ‘prev-content’));

  上面的代码会输出:

  一篇

  老版本(亲测:其实1.0版这么用也是可以的)

  function theNext($widget, $default = NULL)

  {

  $db = Typecho_Db::get();

  $sql = $db->select()->from(‘table.contents’)

  ->where(‘table.contents.created > ?’, $widget->created)

  ->where(‘table.contents.status = ?’, ‘publish’)

  ->where(‘table.contents.type = ?’, $widget->type)

  ->where(‘table.contents.password IS NULL’)

  ->order(‘table.contents.created’, Typecho_Db::SORT_ASC)

  ->limit(1);

  $content = $db->fetchRow($sql);

  if ($content) {

  $content = $widget->filter($content);

  $link = ‘下一篇‘;

  echo $link;

  } else {

  echo $default;

  }

  }

  function thePrev($widget, $default = NULL)

  {

  $db = Typecho_Db::get();

  $sql = $db->select()->from(‘table.contents’)

  ->where(‘table.contents.created created)

  ->where(‘table.contents.status = ?’, ‘publish’)

  ->where(‘table.contents.type = ?’, $widget->type)

  ->where(‘table.contents.password IS NULL’)

  ->order(‘table.contents.created’, Typecho_Db::SORT_DESC)

  ->limit(1);

  $content = $db->fetchRow($sql);

  if ($content) {

  $content = $widget->filter($content);

  $link = ‘上一篇‘;

  echo $link;

  } else {

  echo $default;

  }

  }

  调用代码:

  

  文章参考与http://t.160.me/33.html

评论 (0)
    Top