如何为 Typecho 网站实现随机文章列表?

08/11/201716:26:00
评论
114

该文主要用到的方法是修改 TYPECHO 源码,达到实现随机文章列表的功能,并且通过可以实现某个具体分类下的随机文章调用,但不建议使用该方法,因为一旦系统升级,可能就会收到影响,建议大家参考另外一篇文章,实现网站随机文章调用 : 如何通过修改 TYPECHO 主题文件来实现网站随机文章列表功能? ,另外还有一个方法就是直接使用插件实现,可以参考:Typecho 随机文章列表插件RandomArticleList 。

在var/Widget/Contents/Post目录新建Rand.php文件,内容如下:

<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;

class Widget_Contents_Post_Rand extends Widget_Abstract_Contents
{
    /**
     * 执行函数
     *
     * @access public
     * @return void
     */
    public function execute()
    {
        $this->parameter->setDefault(array('pageSize' => $this->options->postsListSize));

        $select = $this->select();
        if(isset($this->request->mid)){
            $select->join('table.relationships', 'table.contents.cid = table.relationships.cid')
                ->where('table.relationships.mid = ?', $this->request->mid);
        }
        $select->where('table.contents.status = ?', 'publish')
            ->where('table.contents.created < ?', $this->options->gmtTime)
            ->where('table.contents.type = ?', 'post')
            ->order('', 'RAND()')
            ->limit($this->parameter->pageSize);

        $this->db->fetchAll($select, array($this, 'push'));
    }
}

使用方法

 <div>
        <ul>
           <?php $this->widget('Widget_Contents_Post_Rand','pageSize=5')
                    ->parse('<li><a href="{permalink}">{title}</a></li>'); ?>
        </ul>
 </div>

显示某个分类下的随机文章

   <div>
        <ul>
           <?php $this->widget('Widget_Contents_Post_Rand','pageSize=5','mid=3')
                   ->parse('<li><a href="{permalink}">{title}</a></li>'); ?>
        </ul>
    </div>

Typecho 响应式博客主题 Echo 未分类

Typecho 响应式博客主题 Echo

Echo主题简介一套基于layui框架的Typecho主题Echo,主题名取自博客域名(www.echo.so)。主题极简美观,并进行了响应式布局,使博客在手机和平板电脑上也有更好的浏览阅读体验。主题...
Typecho 漂亮的单栏主题 Aria 未分类

Typecho 漂亮的单栏主题 Aria

主题简介书写属于自己的篇章,一款简洁漂亮的单栏Typecho博客主题Aria,具体样式大家可以看底部下载部分的作者演示站,总的来说算是一个功能比较完整的主题了,最主要是作者更新的相对来说比较勤。主题预...
Typecho 简约大图封面主题 Cola 未分类

Typecho 简约大图封面主题 Cola

主题简介这是由网友@可乐投稿的作品,主题采用了大图封面的单栏设计,整体看上去比较干净,不过该主题可以优化的细节之处还有很多,比如:1.评论样式有点粗糙 2.配色有点不够统一,特别是按钮触发的部分 3....
Typecho程序伪静态规则大全 开发日志

Typecho程序伪静态规则大全

Typecho程序的伪静态规则不同于wp直接默认可用,需要我们手工加载到空间中才可以生效。这里TypechoTips整理了一些不同的主机环境中的伪静态规则,希望对大家有所帮助!1、Linux Apac...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: