2018-02-01 18:20

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 = $result0;//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 = $result0;//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(&#39;Widget_Abstract_Contents&#39;)-&gt;filter($result['0']); ?>
    <!--跳转-->
      <?php $this-&gt;response-&gt;redirect($target['permalink'],307); ?>

好了,然后在后要新建一个自定义页面,引用这个php文件即可。

实际效果请看本博客导航栏里的【手气

感谢~


给博主早餐加个鸡蛋!(ง •̀_•́)ง
hzv5.cn文章二维码

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



你可能还喜欢...

  1. 音乐播放器该修修了

  2. ପ( ˘ᵕ˘ ) ੭ ☆٩(๑´∀`๑)ง

  3. 已转载,地址文章开头声明写上了

添加新评论