QQ爹博客 QQ爹博客

Typecho利用自定义页面,随机跳转到某篇文章

in Typecho 文章转载请注明来源!

声明:文章转自https://blog.iplayloli.com/redirect-to-random-post.html

当我们的博客文章很多时,无法很直观的展示所有文章给读者,这时候我们可随机给读者显示一篇文章。
下面这个方法也是在网上找的一些教程累积的方法,不需要修改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文件即可。

实际效果请看他的博客http://www.hzv5.cn/导航栏手气按钮吧

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://qqdie.com/archives/jump-to-an-article.html (转载时请注明本文出处及文章链接)

随机文章
发表新评论
已有 18 条评论
    1. Jrotty
      Jrotty本文作者
      回复

      @逗妇乳 ooo哦哦哦

  1. xema
    xema
    回复

    对于某些视频网站这个功能还是不错的

  2. 胡家小子
    胡家小子
    回复

    然而这个功能不是刚需呢

    1. Jrotty
      Jrotty本文作者
      回复

      @胡家小子 说说你的肛需是什么 @(滑稽) @(滑稽)

      1. 胡家小子
        胡家小子
        回复

        @Jrotty 大概是没女朋友 @(狂汗)

        1. Jrotty
          Jrotty本文作者
          回复

          @胡家小子 你那是鸡需,不是肛需

          1. 星辰
            星辰
            回复

            @Jrotty 皮这一下你开心吗 @(滑稽)

  3. c0smxsec
    c0smxsec
    回复

    @(滑稽) 可是...你们真的愿意去点嘛。

    1. 狂放
      狂放
      回复

      @c0smxsec 其实没人点哈哈哈 @(滑稽)

  4. 香菇
    香菇
    回复

    有莫有想过用js随机文章 @(狂汗)

    1. Jrotty
      Jrotty本文作者
      回复

      @香菇 那就简单多了,实际这个我感觉也太麻烦了,好像不需要这么复杂,但是我只是搬文章,不考虑那么多 @(滑稽)

  5. 落叶大大
    落叶大大
    回复

    不明觉厉 @(你懂的)

前篇 后篇