Typecho无插件实现随机文章调用方法

2021-12-24 14:24:44 浏览数 (1)

前几天有企业网站客户提到,他们编辑有找其他企业网站交换链接的时候对方嫌弃他们网站没有更新内容,有没有什么办法来解决这个问题。当然实际上他们网站并没有多少内容可以更新的,毕竟企业网站产品添加完毕其他哪里有多少内容。这里老蒋想到的办法就是直接侧栏调用随机文章,然后随机文章标题方便的时间用当天时间。

第一、随机文章代码

代码语言:javascript复制
function getRandomPosts($limit = 10){
$db = Typecho_Db::get();
$result = $db->fetchAll($db->select()->from('table.contents')
->where('status = ?','publish')
->where('type = ?', 'post')
->where('created <= unix_timestamp(now())', 'post')
->limit($limit)
->order('RAND()')
);
if($result){
$i=1;
foreach($result as $val){
if($i<=3){
$var = ' class="red"';
}else{
$var = '';
}
$val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
$post_title = htmlspecialchars($val['title']);
$permalink = $val['permalink'];
echo '<li><i'.$var.'>'.$i.'</i><a href="'.$permalink.'" title="'.$post_title.'" target="_blank">'.$post_title.'</a></li>';
$i  ;
}
}
}

这个代码直接添加到当前主题的Functions.php文件中。本来还是有一个随机插件的,这里我考虑到需要用到当天的时间所以不去用插件。

第二、调用代码

代码语言:javascript复制
<?php getRandomPosts('10');?>

在需要调用的位置调用随机文章。这里在文章标题中是没有时间的,我们可以在第一步的时候代码里加上时间,直接用date("Y/m/d")调用就可以了。

0 人点赞