WordPress 输入密码显示隐藏内容的实现方式

目录

在 WordPress 中,有时会遇到这样的需求:

文章中某一部分内容,需要用户输入密码后才能查看。

下面记录一种当年在 WordPress 中使用的实现方式,并给出在 Hugo 中的等价方案。


WordPress 实现思路

将下面代码加入 functions.php

function e_secret($atts, $content=null){
    extract(shortcode_atts(array('key'=>null), $atts));
    if(isset($_POST['e_secret_key']) && $_POST['e_secret_key']===$key){
        return '<div class="e-secret">'.$content.'</div>';
    } else {
        return '<form class="e-secret" method="post">
            <label>输入密码查看加密内容:</label>
            <input type="password" name="e_secret_key">
            <input type="submit" value="确定">
        </form>';
    }
}
add_shortcode('secret','e_secret');

在发布文章时使用:

[secret key="这里设置密码"]
	这里是隐藏内容
[/secret]

例子,密码为:josejang [secret key=“josejang”] 这里是需要隐藏的内容内容 [/secret]