带验证码完整的WordPress非注册用户投稿功能

带验证码完整的WordPress非注册用户投稿功能

如果你的WordPress网站需要非注册用户进行投稿,但想避免垃圾邮件和垃圾信息的滋扰,那么你可以使用一个验证码来保护你的网站。本文将教你如何使用插件和一些简单的代码实现这个功能,从而确保你的网站的安全性。

步骤一:安装插件

  1. 首先,在WordPress仪表板中,点击“插件”按钮,然后点击“添加新插件”按钮。
  2. 在搜索框中输入“Advanced Custom Fields”,然后点击“安装”按钮。
  3. 在安装完成后,点击“激活”按钮。

步骤二:创建表单

  1. 在仪表板中,点击“自定义字段”按钮,然后点击“新建字段组”按钮。
  2. 添加一个字段,并将其命名为“验证码”。
  3. 选择“ReCAPTCHA”作为字段类型。
  4. 设置完ReCAPTCHA后,将其插入到投稿表单中。

步骤三:添加代码

现在,你需要添加一些代码来确保只有经过验证的用户才能发布文章。

// 增加发帖页面字段
function theme_add_captcha_field() {
    $public_key = get_option('theme_contact_form_captcha_public_key');
    if (!$public_key) {
        return;
    }
    echo <<<HTML
    <p>
    <label for="ihc_captcha">验证码 *</label>
    <input type="hidden" name="captcha_provider" value="recaptcha">
    <div class="g-recaptcha" data-sitekey="{$public_key}" data-theme="dark" data-size="compact"></div>
    </p>
HTML;
}
add_action('comment_form', 'theme_add_captcha_field'); 

// 验证码检查
function verify_captcha() {
    if ( is_singular() && isset($_POST['captcha_provider'])) {
        if ($_POST['captcha_provider']=='recaptcha') {
            $private_key = get_option('theme_contact_form_captcha_private_key');
            $url = "https://www.google.com/recaptcha/api/siteverify";
            $data = [
                'secret' => $private_key,
                'response' => $_POST['g-recaptcha-response']
            ];

            $options = array(
                'http' => array(
                'header' => "Content-type: application/x-www-form-urlencodedrn",
                'method' => 'POST',
                'content' => http_build_query($data)
                )
            );
            $context = stream_context_create($options);
            $response = file_get_contents($url, false, $context);
            $responseData = json_decode($response);

            if ($responseData != null && $responseData->success) {
                return true;
            }
        }
        return false;
    }
    return true;
}
add_filter('comments_preprocess', 'verify_captcha');

你可以将代码添加到你主题的functions.php文件中并保存更改。

步骤四:完成

现在非注册用户将需要通过ReCAPTCHA验证码来发布文章,从而避免了垃圾信息和垃圾邮件的滋扰。

希望本文对你有所帮助,有任何问题或疑问欢迎在下方评论区留言。

晓白博客网版权所有,原文地址https://www.xbnb.cn/5188
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容