function getRandomPosts($random=5){
$db = Typecho_Db::get();
$adapterName = $db->getAdapterName();//兼容非MySQL数据库
if($adapterName == 'pgsql' || $adapterName == 'Pdo_Pgsql' || $adapterName == 'Pdo_SQLite' || $adapterName == 'SQLite'){
$order_by = 'RANDOM()';
}else{
$order_by = 'RAND()';
}
$sql = $db->select()->from('table.contents')
->where('status = ?','publish')
->where('table.contents.created <= ?', time())
->where('type = ?', 'post')
->limit($random)
->order($order_by);
$result = $db->fetchAll($sql);
if($result){
foreach($result as $val){
$obj = Typecho_Widget::widget('Widget_Abstract_Contents');
$val = $obj->push($val);
$post_title = htmlspecialchars($val['title']);
$permalink = $val['permalink'];
echo '<a href="'.$permalink.'" title="'.$post_title.'"><h5 class="card-title">'.$post_title.'</h5></a>';
}
}
}
需要使用时在模板中调用<?php getRandomPosts(10);?>
即可,这个随机文章函数的好处就是不光兼容mysql
还兼容sqlite
数据库。
完整使用方法
- 1.将上面完整的随机文章代码丢进主题文件夹的function.php里面,保存;
- 2.在需要添加随机文章的地方加上代码:<?php getRandomPosts(10);?>,保存;
- 3.刷新页面,搞定!
文章转自:http://www.7tec.cn/246.html
版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/typecho-getRandomPosts-functions.html
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
如果要把缩略图也调用出来怎么搞呢
可以参考这篇文章自己改https://qqdie.com/archives/typecho-custom-call.html
那么 怎么显示文章日期呢?
这篇文章的写法已经被我淘汰了吗,看看别的教程吧233
应该是functions.php
不是有内置的调用函数吗,是什么了。。。?
站长,怎么把调用的文章,变成多个文章为一行啊?求解答!
感谢大佬分享,已完成,稍微改了下样式,function里面的样式,可能和模板自带的css不匹配,需要稍微处理下
嗯,根据自己主题改好就行,代码是死的人是活的
大佬多多分享好用的代码吧,哈哈哈哈
谢谢大佬分享!