让我尝试解释一下我的问题。第三方做了一个wordpress端。当用户按下按钮时,我的软件将在 iframe 中运行。它是在 React 中制作的,仅供参考。当用户选择一个项目并按下订单按钮时,我必须首先检查该用户是否登录了该 WordPress 站点。我搜索并找到了类似的东西:
is_user_logged_in
功能,但我得到的是:
Uncaught Error: Call to undefined function is_user_logged_in() <br/><br/>
当我使用邮递员时,我打电话:
.../wp-json/wp/v2/pages
然后我得到信息。当我尝试在代码中执行此操作时,我得到类似以下内容:301 Moved Permanently
所以我想知道,是否可以在 iframe 中使用 WordPress Rest API?
问候
是的,可以在 iframe 中使用 WP REST API,但由于您尝试从一个域向另一个域发出该请求,因此您需要通过设置适当的标头以允许在 WP 安装中明确允许该请求 CORS。最简单、最快的方法是将这样的内容添加到您的
functions.php
:
function add_cors_http_header(){
header('Access-Control-Allow-Origin: *');
}
add_action('init','add_cors_http_header');
尽管您可能应该将其限制为仅需要的域,但甚至可能仅为选择请求添加标头。
如果您的请求针对用户登录的同一域,会话 cookie 应自动添加到您的请求中,以便 WordPress 可以验证当前用户是否确实登录。我建议为此目的创建专用的 REST 路由,并返回 iframe 中的所有内容正常工作所需的所有信息。