typecho设置文章密码保护

时间:2023-03-10 06:12:48
typecho设置文章密码保护

在别人博客看到了一个需要输入密码才能访问文章的功能,像下图一样

typecho设置文章密码保护

typecho也是有这个功能,不需要插件就可以实现。在编辑文章时,右边高级选项,公开度里有个密码保护可以选择

typecho设置文章密码保护

效果图

typecho设置文章密码保护

不过这样的界面不是很友好,至少标题还是要显示出来的,不然也吸引不了人
下面就来修改下代码
代码路径:
var/Widget/Abstract/Contents.php
找到这页代码,应该在740行左右,将以下三行注释掉,注释是在代码前加上“//”,另外在修改下代码,让界面友好些

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

//$value['tags'] = array(); 

//$value['commentsNum'] = 0;

效果图

typecho设置文章密码保护

标题能被看到了,输入界面也友好了些,只是我不会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 错误页了