请注意,本文编写于 1103 天前,最后修改于 1103 天前,其中某些信息可能已经过时。
由于需要调用Typecho的相关文章、随机文章、热门文章显示,整理了对应的代码列出,以备不时之需。其中的热门文章在typecho的handsome主题中可以正常使用,对于其它主题应该也可以吧?!欢迎尝试:
相关文章
post.php中,在需要调用的地方填入以下代码:
<!-- 相关文章 -->
<?php $this->related(10)->to($relatedPosts); ?>
<?php if ($relatedPosts->have()): ?>
<h2>相关文章</h2>
<ul>
<?php while ($relatedPosts->next()): ?>
<li><a href="<?php $relatedPosts->permalink(); ?>" title="<?php $relatedPosts->title(); ?>"><?php $relatedPosts->title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
其中的related(10),数字10表示调用的文章数量,如果调用3篇文章,就是related(3)。
随机文章
在function.php里(handsome主题我放在了functions_mine.php里),在最后添加以下代码:
function getRandomPosts($random)
{
$modified = $random->modified;
$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);
foreach ($result as $val) {
$val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
echo '<li><a href="' . $val['permalink'] . '" title="' . $val['title'] . '"> ' . $val['title'] . ' </a></li>';
}
}
然后在需要添加随机文章的地方加上代码: <?php getRandomPosts(3);?>
,数字3为要调用的文章数量。
例如:
<!--随机文章,调用3篇文章-->
<h2>随机文章</h2>
<ul>
<?php getRandomPosts(3);?>
</ul>
热门文章
根据需要,热门文章可以选择按照评论数目
或浏览数
排序,在function.php里(handsome主题我放在了functions_mine.php里),在最后添加以下代码:
function returnHotPostsTtt($hot,$num)
{
$options = mget();
$days = 99999999999999;
$time = time() - (24 * 60 * 60 * $days);
$db = Typecho_Db::get();
$prefix = $db->getPrefix();
if (!array_key_exists('views', $db->fetchRow($db->select()->from('table.contents')))) {
$db->query('ALTER TABLE ' . $prefix . 'contents ADD views INTEGER(10) DEFAULT 0;');
}
if ($hot == "pinglun") {
$orderType = 'commentsNum';
} else {
$orderType = 'views';
}
$sql = $db->select()->from('table.contents')
->where('created >= ?', $time)
->where('table.contents.created <= ?', time())
->where('type = ?', 'post')
->where('status =?', 'publish')
->limit($num)
->order($orderType, Typecho_Db::SORT_DESC);
$result = $db->fetchAll($sql);
foreach ($result as $val) {
$val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
echo '<li><a href="' . $val['permalink'] . '" title="' . $val['title'] . '"> ' . $val['title'] . ' </a></li>';
}
}
在需要添加随机文章的地方加上代码:<?php returnHotPostsTtt(pinglun,3);?>
,其中的pinglun
指的是按照评论数量排列,此时其中必须为pinglun;如果将其中的pinglun改为liulan或任意字母,则按照浏览数量排序;数字3表示要调用的文章数量。
例如:
<!--热门文章-按评论数,调用3篇文章-->
<h2>热门文章-按评论数</h2>
<ul>
<?php returnHotPostsTtt(pinglun,3);?>
</ul>
<!--热门文章-按浏览数,调用4篇文章-->
<h2>热门文章-按浏览数</h2>
<ul>
<?php returnHotPostsTtt(liulan,4);?>
</ul>
7 comments
你的才华让人瞩目,期待你的更多文章。 https://www.4006400989.com/qyvideo/50984.html
你的文章内容非常用心,让人感动。 http://www.55baobei.com/BX3tvVEJQP.html
你的文章内容非常卖力,让人点赞。 https://www.4006400989.com/qyvideo/73613.html
你的文章内容非常卖力,让人点赞。 https://www.4006400989.com/qyvideo/73613.html
真棒!
《雨停了》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/91153.html
《回声》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/147937.html