Typecho 的 密码保护 文章在没有输入密码的情况下会返回403代码,要是 Nginx 自定义 了 403 验证码就会导致无输入密码查看文章。
自定义 状态码
修改functions.php
function themeInit($self) {
if ($self->hidden) { // 密码保护 hidden 为 true
$self->response->setStatus(200);
}
}
修改密码输入框
修改post.php,把<?php $this->content(); ?>修改为如下
<?php if ($this->hidden): ?>
<div class="text-center mx-auto" style="max-width: 420px;">
<form
action="<?php echo Helper::Security()->getTokenUrl($this->permalink); ?>"
method="post">
<div class="input-group">
<input type="password" name="protectPassword" class="form-control"
placeholder="<?php _e("输入密码打开新世界大门"); ?>"
aria-label="<?php _e("输入密码打开新世界大门"); ?>">
<input type="hidden" name="protectCID" value="<?php $this->cid(); ?>"/>
<button class="btn btn-primary" type="submit"><?php _e("确定"); ?></button>
</div>
</form>
</div>
<?php else: ?>
<?php $this->content(); ?>
<?php endif; ?>
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)