专栏首页杨逸轩 ' sBlogTypecho如何利用自定义页面,随机显示(跳转到)一篇文章

Typecho如何利用自定义页面,随机显示(跳转到)一篇文章

当我们的博客文章很多时,无法很直观的展示所有文章给读者,这时候我们可随机给读者显示一篇文章。 下面这个方法也是在网上找的一些教程累积的方法,不需要修改typecho源文件,只需要在主题文件夹下,新建一个php文件,名字自定义,然后把以下代码扔进去:

<?php
    /**
     * 手气最佳
     *
     * @package custom
     */
    if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
    <?php
    $db = Typecho_Db::get();
    $sql = $db->select('MAX(cid)')->from('table.contents')
        ->where('status = ?','publish')
        ->where('type = ?', 'post')
        ->where('created <= unix_timestamp(now())', 'post');
    $result = $db->fetchAll($sql);
    $max_id = $result[0]['MAX(`cid`)'];//POST类型数据最大的CID
    $sql = $db->select('MIN(cid)')->from('table.contents')
        ->where('status = ?','publish')
        ->where('type = ?', 'post')
        ->where('created <= unix_timestamp(now())', 'post');
    $result = $db->fetchAll($sql);
    $min_id = $result[0]['MIN(`cid`)'];//POST类型数据最小的CID
    $result = NULL;
    while($result == NULL) {
        $rand_id = mt_rand($min_id,$max_id);
        $sql = $db->select()->from('table.contents')
            ->where('status = ?','publish')
            ->where('type = ?', 'post')
            ->where('created <= unix_timestamp(now())', 'post')
            ->where('cid = ?',$rand_id);
        $result = $db->fetchAll($sql);
    }
    ?>
    <!--下面就是实现显示跳转到随机文章-->
    <?php $target = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($result['0']); ?>
    <!--跳转-->
      <?php $this->response->redirect($target['permalink'],307); ?>

好了,然后在后要新建一个自定义页面,引用这个php文件即可。 实际效果请看本博客导航栏里的【手气】 感谢~

转载至 :吖远zzy

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Fiddler怎么对IPhone手机的数据进行抓包分析

    杨逸轩
  • 利用CSS 给表单必选项添加星号

    杨逸轩
  • Java实现微信跳一跳抓包修改分数

    杨逸轩
  • 【先行者课程】_在线全栈备忘录(四)之mongoDB的ObjectId是什么?

    今天是周二,是先行者课程“在线全栈(MongoDB&nodeJs)备忘录”的第四次课,今天的内容不是特别的多,但是却比较重要。 <!-- --> ? mong...

    web前端教室
  • 你竟敢说你懂Spring框架?有可能你是没看到这些...(上)

    所以,特地去搜刮了一些关于spring的面试题,希望能帮助各位同学在升职加薪的路上,一去不复返。

    Java学习
  • 分享一下我的三个代码自动生成工具类--助你解放双手

    张风捷特烈
  • Python学习-while循环语句

    Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。即重复性的做一件事情

    py3study
  • 阿里面试答案——Spring框架

    美的让人心动
  • Present 轻量级加密算法 C#实现

    从入门到进错门
  • 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

    储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时...

    java进阶架构师

扫码关注云+社区

领取腾讯云代金券