Typecho 如何设置文章密码保护

有时候想发布不公开文章,或者不想被蜘蛛抓取页面,又或者只是想私底下分享,这时候文章就可以设置个密码来控制访问权限,那么对于开源博客系统 Typecho 能不能设置密码保护,又要如何设置呢?

细心的你已经发现,本文已经使用了密码保护,此功能在 Typecho 中原生支持,不需要插件就可以实现,下面聊聊设置密码保护的方法。

根据 Typecho wiki 原文:

在数据库设计的 contents 表中,我们约定了一个密码保护字段 password,此字段由作者自行设置。并在数据库中明文存储,方便作者修改和查询。一旦一则内容设置了此密码,他的内容将受到保护不会直接输出给第三方,只有在满足特定要求时才会输出。

因此,在文章发表后,通过修改 contents 表中该文章的 password 字段的值,即可实现密码访问:

TYPECHO.CONTENTS.SET.PASSWORD.png

当然了,我们不会直接去改数据库,写文章页面右侧就可以设置了:

TYPECHO.CONTENTS.LOCKED.2.png

效果:

TYPECHO.CONTENTS.LOCKED.png

TYPECHO.CONTENTS.DECRYPT.png

当然了,这里的截图已经是被我修改过样式后的显示效果,要自定义提示文本,可以修改博客源码中的 var/Widget/Abstract/Contents.php 文件,1.1 版本大概在 739 行左右,参见下图:

TYPECHO.CONTENTS.CODE.png

其中注释掉的三行:

//$value['title'] = _t('此内容被密码保护');
//$value['tags'] = array();
//$value['commentsNum'] = 0;

如果取消注释,则 文章标题会替换为 “此内容被密码保护”、文章标签会替换为 “none”、评论数置为 0。

既然知道了在这里控制密码访问,那么我们就可以在这里根据自己的需要自由发挥了,比如我加了个 class 居中:

<p class="easyPieChart">...

需要特别提醒的是, 在 nginx/apache 中不要自定义 403 错误页 ,因为 nginx/apache 自定义错误页优先于 typecho,一旦设置就不会出现输密码的页面,而是显示 403 错误页了。

PS:水了这么多,其实要说的就是最后一段话~~~


参考文章:
1.《Typecho文章密码保护显示标题方法


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 教程typecho密码保护 的文章

 本文最后更新于 2018/05/02 12:00:23,可能因经年累月而与现状有所差异

 引用转载请注明:VirCloud's Blog > 系统 > Typecho 如何设置文章密码保护

精选评论

  1. iLiLi

    博主请问一下,设置密码的文章会被谷歌自动收录吗? icon_question.gif

    1. 欧文斯

      不会,设置密码的文章会返回 403,不过像本站回复可见功能也可以实现这个要求,而且不影响收录

  2. Jdeal

    博主大大,我现在用的一个typecho主题,当把一篇文章加上密码后,在谷歌浏览器里会所有页面都报403,页面可以访问,但是控制台显示页面403,我换了一个主题后,只有加密的文章会显示403,其余页面正常,我想问下这是什么原因,应该是主题导致的,是需要修改什么吗?还有贵博客的文章点击后显示弹窗大图是用的什么插件吗,还是JS写的 icon_cry.gif

    1. 欧文斯

      这是开启了 Pjax 的缘故,Pjax 只会刷新页身内容,console 内容不会清空。插件是 fancybox。

  3. konghai

    最后一段话满满的干货,整个google 你最牛,就你这篇解决问题。

    1. 欧文斯

      哈哈哈,也是我踩过的坑

  4. true

    我的博客本身的密码访问都是404不知道什么原因

    1. 欧文斯

      不要在 Nginx 或 Apache 等配置 404/403 错误页,否则会优先