首页 > 解决方案 > 使用 AJAX 检查 Wordpress 中 PHP 变量的值

问题描述

我尝试了各种不成功的方法,想知道以前是否有人这样做过。

我有一个自定义帖子类型,它将生成公共页面。但是,我希望某些信息只能通过输入密码来访问。

我想要的是:用户在表单字段中输入代码,如果它与存储在数据库中的代码(CPT 中的元值)匹配,则将显示私有内容,如果不匹配则不会显示。

我尝试使用 wp_localize_script() 但似乎在前端不起作用。考虑过使用会话数据,但这似乎不是最好的解决方案。我的 AJAX 很弱,所以也不顺利。

有什么想法吗?

标签: phpajaxwordpressfrontend

解决方案


把它放在一个名为 testpage.php 的 PHP 文件中,看看它是否有效。它使用 PHP 会话($_SESSION):

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<?php if ($_SESSION["authorized"] == true || $_POST["SecretCode"] == "12345") {
    $_SESSION["authorized"] = true;
    ?>
    …
    …
    …
    TOP SECRET CONTENT
    …
    …
    …
<?php } else if (!empty($_POST["SecretCode"])) { ?>
    Invalid Secret Code
<?php } else { ?>
    <button>Test Secret Code</button>
    <input type="text" id="code"/>
    <script>
        var PostPackage = {
            SecretCode: document.getElementById("code").value
        };
        var CallbackFunction = function () {
            location.reload();
        };
        var OnClickFunction = function () {
            $.post("testpage.php", PostPackage, CallbackFunction);
        };
        $("button").click(OnClickFunction);
    </script>
<?php } ?>
</body>
</html>

推荐阅读