• 首页
  • 关于
  • 留言
  • 邻居
  • 归档
  • 相册
  • 片刻
  • 搜索
  • 夜间模式
    ©2019-2026  呢喃 Theme by OneBlog
    搜索
    标签
    # Typecho # 博客 # 孤独 # 账号管理 # 用户体验 # Typecho 主题修改 # 密码保护文章 # 博客美化 # Typecho 教程 # hexo
    行走江湖

    OneBlog 主题修改教程:密码保护文章标题正常显示

    2026.01.22 / 55 阅读 / 2 评论 / 3388 字
    行走江湖

    OneBlog 主题修改教程:密码保护文章标题正常显示

    阅读 55 评论 2 发表于2026.01.22

    介绍

    在 Typecho 中,当文章设置密码保护时,默认情况下 文章的标题会显示此内容被密码保护”而不是原始标题。这会导致在文章列表、单篇文章页面以及浏览器标题栏中显示不友好。

    本教程仅针对于 OneBlog 主题进行修改,(其他主题雷同)使密码保护的文章的标题显示为“密码保护:[原标题]”,而非显示此内容密码保护。同时,浏览器标题栏也会正常显示文章原始标题。

    修改步骤

    1. 修改 post.php 文件

    post.php 是单篇文章页面模板,需要修改标题显示部分。

    修改位置:

    • 第15行:有封面图的文章标题
    • 第32行:移动端文章标题
    • 第52行:无封面图的文章标题

    原代码:

    <h1><?php $this->title() ?></h1>

    修改后代码:

    <h1><?php echo $this->hidden ? '密码保护:' . $this->row['title'] : $this->row['title']; ?></h1>

    2. 修改 index.php 文件

    index.php 是首页模板,需要修改 banner 和文章列表中的标题显示。

    修改位置:

    • Banner 部分(约第29行):'title' => $post->title,
    • 文章列表部分(约第109行):<h1 class="animated fadeInUp"><?php $this->title();?></h1>

    Banner 原代码:

    $posts[] = [
        'link' => $post->permalink,
        'title' => $post->title,
        'thumb' => $thumbnail,
    ];

    Banner 修改后代码:

    $posts[] = [
        'link' => $post->permalink,
        'title' => $post->hidden ? '密码保护:' . $post->row['title'] : $post->row['title'],
        'thumb' => $thumbnail,
    ];

    文章列表原代码:

    <h1 class="animated fadeInUp">
        <?php $this->title();?>
    </h1>

    文章列表修改后代码:

    <h1 class="animated fadeInUp">
        <?php echo $this->hidden ? '密码保护:' . $this->row['title'] : $this->row['title'];?>
    </h1>

    3. 修改 archives.php 文件

    archives.php 是归档页面模板,需要修改文章列表中的标题显示。

    修改位置:

    • 约第42行:'title' => $archives->title,

    原代码:

    $articlesByYear[$year][] = [
        'title' => $archives->title,
        'permalink' => $archives->permalink,
        'date' => date('m月d日', $archives->created)
    ];

    修改后代码:

    $articlesByYear[$year][] = [
        'title' => $archives->hidden ? '密码保护:' . $archives->row['title'] : $archives->row['title'],
        'permalink' => $archives->permalink,
        'date' => date('m月d日', $archives->created)
    ];

    4. 修改 header.php 文件

    header.php 是头部模板,需要修改 HTML <title> 标签的显示,确保浏览器标题栏正常显示。

    修改位置:

    • <title> 标签的 else 分支(约第22-25行)

    原代码:

    <?php else:?>
    <?php $this->archiveTitle([
                'category' => _t('%s'),
                'search'   => _t('包含关键字 %s 的文章'),
                'tag'      => _t('标签 %s 下的文章'),
                'author'   => _t('%s 发布的文章')
            ], '', ' - '); ?><?php $this->options->title(); ?>
    <?php endif; ?>

    修改后代码:

    <?php else:?>
    <?php if ($this->is('post')): ?>
    <?php echo $this->row['title']; ?> - <?php $this->options->title(); ?>
    <?php else: ?>
    <?php $this->archiveTitle([
                'category' => _t('%s'),
                'search'   => _t('包含关键字 %s 的文章'),
                'tag'      => _t('标签 %s 下的文章'),
                'author'   => _t('%s 发布的文章')
            ], '', ' - '); ?><?php $this->options->title(); ?>
    <?php endif; ?>
    <?php endif; ?>

    作为原 WordPress 用户 是有点强迫症的,原本我使用的是 泽泽社长 的 Titleshow 插件 来实现的,可是升级到了 typecho1.3 正式版后插件失效了,所以只能直接自己改代码了。

    帖子正文提到的【Titleshow】插件,作者【泽泽社长】以推出支持【Typecho1.3】版本的插件【Titleshow】

    如后续本帖代码未被合并至主题仓库,主题更新后不想频繁修改可使用【Titleshow】。

    本文著作权归作者 [ 云泥 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    TypechoTypecho 主题修改密码保护文章博客美化Typecho 教程
    取消回复

    发表留言
    回复

    隐私评论

    读者留言2

    1. 阿航 Lv.1
      2026-01-22 20:59 回复

      牛批

      1. 云泥 博主
        2026-01-22 21:09 回复
        @阿航

        哈哈,感谢来访~

    加载更多评论
    加载中...
    — 已加载全部评论 —
    首页关于留言邻居归档相册片刻
    Copyright©2019-2026  All Rights Reserved.  Load:0.008 s
    鲁公网安备37011602000363号   鲁ICP备2021028621号
    Theme by OneBlog V3.6.5
    夜间模式

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