老罗博客
  • 首页
  • 钓鱼
  • 友链
  • 友圈
  • 排行
  • 归档
  • 关于
  • 首页
  • 微语
  • 友链
  • 友圈
  • 排行
  • 归档
  • 关于
  • 搜索
  • 夜间模式
    ©2020-2026  老罗博客 Theme by OneBlog
    搜索
    标签
    # 游记 # 网络 # focus
  • 首页>
  • 网络>
  • 正文
  • rizhi主题错误提示的修改

    2026年04月05日 326 阅读 29 评论 1831 字

    今天rizhi主题作者发来了更新包,适配了ty1.3.0,使用php7.4正常,使用php8.0出现错误的提示如下:
    1、猜你喜欢部分

    Warning: Undefined array key "permalink" in/www/wwwroot/www.luosir.cn/usr/themes/rizhi/functions.php on line 342

    PHP 8.0 对未定义数组下标检查更严格,permalink 这个链接字段不存在,没获取到,PHP8 就报错,PHP7只会忽略,不会报错。
    把出现错误提示的那行代码换成下面的,暂时就解决了

    function getRandomPosts($random){
        // 修复$random参数类型检查问题
        if (!is_object($random)) {
            $random = Typecho_Widget::widget('Widget_Archive@index');
        }
        $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(6)
            ->order($order_by);
    
    $result = $db->fetchAll($sql);
    if($result){
        foreach($result as $val){
            // 初始化文章对象
            $obj = Typecho_Widget::widget('Widget_Abstract_Contents');
            $obj->push($val);
            
            // 正确获取标题和链接(Typecho 标准用法)
            $post_title = htmlspecialchars($obj->title);
            $permalink = htmlspecialchars($obj->permalink);
            
            echo '<li><a title="'.$post_title.'" href="'.$permalink.'">'.$post_title.'</a></li>';
        }
      }
    }

    2、暗黑模式下暗黑切换按钮失效
    header.php里修改语法错误,如下

    <?php if ($this->options->dark): ?>
    <link rel="alternate stylesheet" type="text/css" href="<?php $this->options->themeUrl('/css/dark.min.css'); ?>" 
          class="dark-mode" title="dark"
          <?php if(empty($_COOKIE['night'])): ?>disabled="disabled"<?php endif; ?>>
    <?php endif; ?>
    本文著作权归作者 [ 老罗 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    读者留言29

    留言排行

    1. 我是军爸 Lv.2
      2026-04-05 21:15 回复

      打开首页,右上角弹出错误消息。/www/wwwroot/www.luosir.cn/usr/themes/rizhi/header.php on line 20
      alternate stylesheet" href="https://www.luosir.cn/usr/themes/rizhi/css/dark.min.css" title="dark">

      1. 老罗 博主
        2026-04-06 09:07 回复
        @我是军爸

        确实有这样的提示

        1. 我是军爸 Lv.2
          2026-04-06 19:34 回复
          @老罗

          好呀,已添加友链了! 超过5层就没办法回复了

          1. 老罗 博主
            2026-04-06 19:52 回复
            @我是军爸

            好的,已添加

        2. 我是军爸 Lv.2
          2026-04-06 19:03 回复
          @老罗

          现在已经好了

          1. 我是军爸 Lv.2
            2026-04-06 19:06 回复
            @我是军爸

            但是点击猜你喜欢的文章,是不会跳转的,应该有bug

            1. 老罗 博主
              2026-04-06 19:26 回复
              @我是军爸

              这个主题使用起来不容易啊。我们加个友链吧

    2. Vind Lv.1
      2026-04-05 20:44 回复

      我用lilog聚合时候,也遇到过PHP8报错的情况,是某个函数在7.x时候需要用到,到8.x时候已经默认支持了,但是再写就变成多余,反而报错了。

      1. 老罗 博主
        2026-04-05 20:46 回复
        @Vind

        不用改那就最好了。

    1. 1
    2. 2
    加载更多评论
    加载中...
    — 已加载全部评论 —
    首页微语友链友圈排行归档关于
    Copyright©2020-2026  All Rights Reserved.  Load:0.030 s
    粤ICP备2024302751号-2
    Theme by OneBlog V3.7.0
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。

    首页
    友链
    友圈
    说说