Typecho文章阅读权限,设置会员可见内容
Typecho 默认只支持公开文章和密码保护,没有内置的会员可见内容功能。如果你的站点需要让不同用户看到不同内容,最直接的做法是用密码保护文章,或者安装权限类插件。本文会从零基础出发,讲清三种可落地的方案,读完你能根据自己的站点情况选择最合适的一种,并知道怎么验证效果。
## 先判断你的站点适合哪种权限控制方式
Typecho 文章阅读权限的本质是:在文章输出到页面之前,判断当前访问者是否满足条件,不满足就隐藏正文或提示登录。常见需求有三种:
- **只要不让所有人看**:用 Typecho 自带的密码保护最省事,发文章时填一个密码即可。
- **需要登录后才能看**:可以用插件实现,比如登录可见、角色限制类插件。
- **需要按用户等级区分内容**:需要自定义字段配合模板判断,适合有一定动手能力的站长。
如果你用的是宝塔面板,后台路径是 `网站` → `你的站点` → `根目录`,Typecho 的核心文件和主题文件都在这里。改模板前建议先备份主题目录。
## 方法一:用文章密码保护实现最简单的阅读权限
这是 Typecho 自带功能,适合临时隐藏单篇文章。
1. 进入后台 `撰写` → `撰写文章`。
2. 在右侧 `自定义字段` 或 `高级选项` 区域找到 `密码` 输入框。
3. 填入访问密码,例如 `vip2024`。
4. 保存并发布文章。
前台访问该文章时会出现密码输入框,输入正确密码后才能看到正文。**注意:密码保护是单篇独立的,不能批量设置,也不能自动识别会员身份。** 如果会员很多,不建议用这种方式。
验证方法:退出登录状态,用浏览器无痕模式打开文章链接,确认页面要求输入密码。
## 方法二:用插件实现登录可见或会员可见
Typecho 社区有若干权限控制插件,常见思路是:未登录用户只能看到摘要,登录用户才能看到全文。安装方式一般如下:
1. 下载插件压缩包,解压后上传到 `/usr/plugins/` 目录。
2. 登录 Typecho 后台,进入 `控制台` → `插件`。
3. 找到插件名称,点击 `启用`。
4. 在插件设置里选择需要限制的文章分类或用户角色。
部分插件会在文章编辑页增加 `阅读权限` 选项,你可以按分类或按用户组设置可见范围。**插件方案的好处是不用改模板,缺点是功能受插件作者维护情况影响。** 安装前建议在测试环境先验证,避免和现有主题冲突。
如果插件启用后前台没有变化,优先检查主题是否使用了自定义的文章循环代码,有些主题不会自动调用插件挂载点。
## 方法三:用自定义字段和模板判断控制正文输出
如果你不想依赖插件,可以自己加一个自定义字段。思路是在文章编辑页添加 `access_level` 字段,然后在主题的 `post.php` 里判断当前用户角色。
在主题目录下找到 `post.php`,在输出正文的位置附近加入类似判断:
```php
fields->access_level == 'vip' && !$this->user->hasLogin()): ?>
该内容仅限登录会员查看,请先登录。
content(); ?> ``` 接着处理在后台文章编辑页的 `自定义字段` 中新增字段名 `access_level`,值填 `vip`。这样未登录用户看到的是提示文字,登录用户看到完整正文。 **这种方式灵活,但需要你至少能看懂一点 PHP 模板逻辑。** 改之前务必备份 `post.php`,改完清空浏览器缓存再测试。 ## 设置过程中容易踩的坑 - 密码保护不能和插件权限同时生效,优先用一种方式,避免逻辑冲突。 - 插件启用后如果整个站点白屏,多半是插件与当前 Typecho 版本或 PHP 版本不兼容,进 `/usr/plugins/` 把插件目录改名即可恢复。 - 自定义字段名不要用中文或空格,建议用 `access_level` 这类英文小写加下划线。 - 模板判断只能控制正文输出,不能阻止用户直接访问附件或图片链接,敏感文件不要只靠模板隐藏。 - 如果站点开了 CDN 或缓存插件,修改模板后要清缓存,否则前台可能还是旧页面。 ## 怎么确认会员可见内容已经生效 建议用三种身份各测一次: 1. **未登录状态**:打开受限文章,应该看到登录提示或密码框,而不是完整正文。 2. **已登录普通用户**:如果只限制登录,应该能看到全文;如果按等级限制,普通用户仍然看不到。 3. **管理员账号**:始终能看到全文,用于确认内容本身没有问题。 测试时用无痕窗口,避免登录状态干扰。如果结果不符合预期,先检查文章是否真的填了自定义字段,再检查模板判断条件是否写反。 ## 常见疑问 **Typecho 后台找不到密码输入框怎么办?** 部分主题或旧版本会把密码选项放在 `高级选项` 里,展开后即可看到。如果确实没有,说明当前版本或主题做了调整,可以用自定义字段替代。 **插件和自定义字段可以一起用吗?** 技术上可以,但不建议。两套权限逻辑同时生效时,排查问题会变得很麻烦,选一种稳定的方式即可。 **设置后搜索引擎还能收录吗?** 受限内容通常不会被正常收录,但如果你希望摘要页被收录,可以在模板中只隐藏正文、保留标题和摘要输出,具体效果以搜索引擎实际抓取为准。 **改了模板导致网站打不开怎么恢复?** 通过宝塔文件管理把备份的 `post.php` 覆盖回去,或者临时把主题目录切换回默认主题,再逐步排查代码错误。 如果你正在处理 Typecho 文章阅读权限和会员可见内容,建议先明确自己是只需要隐藏、还是需要按用户身份区分,再从上面对应的方法入手。改模板前备份、改完后用无痕窗口验证,这两步能帮你避开大部分问题。