主题特点

  • 高仿新浪微博经典版界面
  • 支持自适应
  • 个性化程度高
  • 可设置背景图、顶栏背景图
  • 可自定义导航栏、资料卡、关注按钮等
  • 文章大图多样化选择,支持随机图
  • 适配 Typecho 最新版本(1.2.1)与 PHP 8.0
  • 配合 Links-for-Weibo插件可实现侧边栏友情链接
  • 支持备份主题设置数据(测试)

开箱即用

从 GitHub Releases 上下载主题最新版本压缩包后,解压并将整个文件夹上传至你的博客的/usr/themes目录下(或者,上传压缩包后在你的服务器上解压),最后将文件夹改名为Weibo即可。

上传完成后,在博客后台控制台外观处启用主题,再点击设置外观即可进入主题设置页面。

历史

本主题由 Pomelo(原名 Rowingbohe)于 2018 年二次移植自 WordPress 主题(原作者为 W候人兮猗),因为历史比较久远,移植过程中的具体细节已经丢失。2025 年,对主题进行修复与完善。

作者的话

从十年前初入建站,八年前第一次安装 Typecho,七年前敲下第一行魔改代码,再到今天重走十年前的路,以往写下的文章、买下的域名,留到今天的少之又少,但这个技术含量不高的主题是我为数不多留下来、并且对大众有一点点用的产物。这次对原主题源码进行了说多不多、说少不少的改动,并且专门制作了文档页面(停放于 Netlify,只要域名一直续费,基本不会失效),主要还是回味一下以前绞尽脑汁做移植的过程。搞代码虽然让人头疼,但也使人感到快乐。改 bug 的过程中,我时常在想 N 年前的我是怎么整出这么 nb 的东西的 😂

希望改完之后的这套主题,能至少有一些可用性,也希望能为日渐式微的 Typecho 圈子乃至博客圈子发光发热。在此声明,本主题欢迎二开,欢迎 Issues 和 Pull Request,转载推荐需注明作者和本文档页链接。但不建议去除底部版权信息,禁止对外售卖。当然,估计这么 fw 的东西也没人拿去卖罢…

那么,乙巳蛇年春节前夕,谨在此回应大家的等待:Weibo 主题,打赢复活赛了!

——Pomelo 2025-01-21 于浙江

兼容性

为了让主题适配Typecho1.3.0 和 PHP8.4,需要修改6处

functions.php文件两处

//$ysj = $sjdq['value'];       位于第12行
$ysj = ($sjdq && isset($sjdq['value'])) ? $sjdq['value'] : 'a:0:{}';   // 空序列化数组
//修改替换第183行起始的getViewsStr()函数
function getViewsStr($widget, $format = "{views}") {
    // 安全反序列化:若失败或非数组,则设为空数组
    $fields = @unserialize($widget->fields);
    if (!is_array($fields)) {
        $fields = array();
    }

    $views = isset($fields['views']) ? intval($fields['views']) : 0;

    // 增加浏览次数(仅在单页文章)
    if ($widget->is('single')) {
        $vieweds = Typecho_Cookie::get('contents_viewed');
        if (empty($vieweds)) {
            $vieweds = array();
        } else {
            $vieweds = explode(',', $vieweds);
        }

        if (!in_array($widget->cid, $vieweds)) {
            $views++;
            // 更新自定义字段
            $widget->setField('views', 'str', strval($views), $widget->cid);
            $vieweds[] = $widget->cid;
            Typecho_Cookie::set('contents_viewed', implode(',', $vieweds));
        }
    }

    return str_replace("{views}", $views, $format);
}

index.php文件两处

//当用户未登录时,$this->user可能为null,或者'row'数组中没有'group'键。这会导致警告。
//修改第51行的$currGroup 
$currGroup = $this->user->hasLogin() ? ($this->user->group ?? 'visitor') : 'visitor';
//_e(getViewsStr($this));      修改77行阅读数函数
$this->viewsNum();

post.php文件两处

//_e(getViewsStr($this));      修改23行阅读数函数
$this->viewsNum();
<!--<p><?php //$this->content('Continue Reading...'); ?></p>、第27行多了顿号(删去)-->
<p><?php $this->content('Continue Reading...'); ?></p>

此外阅读数函数需要安装LZStat插件

为适配PHP8.4,需修改Plugin.php文件第241行

public static function getRank(?string $orderBy = null)

致谢

  • 感谢原 WordPress 主题作者 W候人兮猗,感谢原网站源码制作者(暂时不明)。
  • 感谢阿珏博客(原链接已失效)协助开发自适应。
  • 感谢原 Typecho Lover 社区的支持。
  • 部分代码参考及移植自泽泽社长Ryan’s Blog 及 Kratos 主题
  • 主题默认壁纸、随机图均为哔哩哔哩看板娘 22、33,取自 B 站@壁纸喵
  • 最后感谢 Typecho 这么一款优秀的博客引擎,承载了和我们一样无数人的梦想。






文件名称:Weibo-theme_v3.0
适用版本:Typecho
更新日期:2025-01-22
文件大小:2.22 M