WordPress WP REST API按域限制请求 - php

这似乎会更加明显。我使用WordPress管理外部网站的内容。 WordPress内容是通过WP REST API显示的,而我使用ajax和JS将内容显示到此远程站点。 (例如https://example.com//wp-json/wp/v2/pages/23)。一切都基于SSL,并且一切正常。我如何简单地做到这一点,以便仅从某个域(远程站点)允许此ajax GET请求? WP API仅用于显示数据。

参考方案

我只是看过php服务器变量并弄清楚了。 $ _SERVER ['HTTP_ORIGIN'];是我抓住的那个。奇迹般有效!

add_filter( 'rest_authentication_errors', 'gc_filter_incoming_connections' );

function gc_filter_incoming_connections( $errors ){

    $allowed_origins = array('https://www.example.com'); // url that you want to access your WP REST API
    $request_origin = $_SERVER['HTTP_ORIGIN'];

    if( ! in_array( $request_origin, $allowed_origins ) )
        return new WP_Error( 'forbidden_access', 'Access denied', array( 'status' => 403 ) );

    return $errors;

}

WordPress wp_register_script函数未在页脚中加载脚本 - php

我正在尝试在正文完成之前在博客的页脚中加载Google托管的JQuery。这是我在functions.php文件中使用的功能。function load_jquery() { if (!is_admin()) { wp_deregister_script('jquery'); // load the Google API copy in …

REST API中的域限制 - php

我正在使用基于密钥的身份验证为Web应用程序在PHP中开发REST API,我也想实现DOMAIN限制以调用REST API,以便只能从允许的域或子域访问它。为此,我尝试从$ _SERVER变量中获取HTTP_REFERRAL,但通过CURL调用API时,它没有给出HTTP_REFERRAL(可能是因为未通过HTTP协议进行调用),请提出实现它的最佳方法是什…

WordPress:在网站上仅加载一个jquery脚本 - php

刚要启动一个WordPress网站,但注意到它当前正在加载两个jquery文件,一个包含在wp-includes中,另一个来自我的header.php,是否有一种方法可以使wordpress在前端加载wp-includes?做了大量的搜索,并且对此的唯一提及似乎包括以下代码,但是我找不到关于它的任何文档,任何想法?<?php wp_enqueue_sc…

Wordpress the_permalink性能与将值存储在变量中 - php

制作新主题和创建具有链接到所述文章的多个对象的文章视图的最有效方法是什么?我是C#专业人士,但是在PHP中我并不如我所愿。假设您有:while(have_posts()) <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?>…

移动Wordpress后,登录有效,但不再有管理员访问权限 - php

将wordpress从旧的ISP转移到新的ISP之后,我在管理员访问权限/对仪表板的访问方面遇到了麻烦。传输是通过将所有文件(包括.htaccess)从旧服务器复制到新服务器,转储旧数据库并将其放在新服务器上并调整wp-config.php中数据库的所有设置来完成的。通过在计算机上设置主机条目,我可以验证一切正常,并且显示了所有内容。这是我的问题。使用旧的和…