在别人博客看到了一个需要输入密码才能访问文章的功能,像下图一样:
typecho也是有这个功能,不需要插件就可以实现。在编辑文章时,右边高级选项,公开度里有个密码保护可以选择:
加密效果如下:
不过这样的界面不是很友好,至少标题还是要显示出来的,不然也吸引不了人
下面就来修改下代码,代码路径:var/Widget/Abstract/Contents.php
找到这页代码,应该在740行左右,将以下三行注释掉,注释是在代码前加上“//”,另外在修改下代码,让界面友好些
//$value['title'] = _t('此内容被密码保护'); //$value['tags'] = array(); //$value['commentsNum'] = 0;
更改后的效果如下图:
标题能被看到了,输入界面也友好了些,只是我不会PHP和CSS,不然也可以做美观些。。。
附修改后的代码,不懂PHP的可以看下,照这样子修改就可以了
if ($value['hidden']) { $value['text'] = '<form class="protected" action="'. $this->security->getTokenUrl($value['permalink']). '" method="post">'.'<p class="easyPieChart"><input type="password" class="text" name="protectPassword" size="10" placeholder="此文章已被隐藏,请输入密码查看" style="background-color:rgb(246, 244, 236);"/> <input type="submit" class="submit" value="' . _t('提 交') . '" /></p>' . '</form>'; //$value['title'] = _t('此内容被密码保护'); //$value['tags'] = array(); //$value['commentsNum'] = 0; }
需要特别提醒的是, 在 nginx/apache 中不要自定义 403 错误页 ,因为 nginx/apache 自定义错误页优先于 typecho,一旦设置就不会出现输密码的页面,而是显示 403 错误页了。