这方法真是太赞了,以后想随机看看以前的博文就方便多了,再也不用翻个半死了。而且还能给读者一个惊喜,说不定他们就能发现一些之前没注意到的好文章。感谢博主的分享!
有时候文章过多,想看看以前的又不想去刻意去找,或者朋友来串门,看上瘾了还想看看其他的,这就是一个很好的入口。
方法
第一步
创建独立页面
<?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); ?>
第二步
在后台创建独立页面,在撰写中添加页面,在文件模版中选择“随机阅读”,发布页面后,访问刚刚生成的链接即可随机访问博客中的一篇文章。
[!NOTE]
文章中代码来自于https://cloud.tencent.com/developer/article/1147510.
多写点,这个博客的教程,说不定哪天我就换了
@网友小宋 哈哈哈
为什么叫随阅,不叫机阅?
@obaby 这OωO
咦,这不是你以前发过的吗
@刘郎 站里没有搜到,就再发一次啊哈哈哈哈
@湘铭呀! 不研究新插件了?😂
@刘郎 没有需求了😂