Wordpress REST API - 写入 JSON 文件?

1 php wordpress wordpress-rest-api

我一直在摆弄 Wordpress REST API,创建了我的自定义端点,并获取了我想要的确切数据。基本上,我创建了一个端点来接收所有帖子/页面/acf - 我只想在预加载期间调用 API 一次,而不是在每次页面加载时调用 API。

但是,当我调用 API 时,所有逻辑都会运行,这会导致加载时间为 1 到 2 秒。是否有可能每当我在 Wordpress 上进行更新时,它都会调用我的端点,并在服务器上写入一个 JSON 文件,即 data.json?这样,当我加载网站时,它可以调用 data.json,完全没有延迟。

我不确定这是否可能,但想尝试在这里询问。

小智 5

此方法允许您从外部或内部 API 端点编写 json;它不如上面的复杂(目标文件夹明智),但使用 REST API,因此您可以获取完整的 posts 对象,而无需指定所有字段:

// Export API Data to JSON, another method
add_action('publish_post', function ($ID, $post) {

    $wp_uri = get_site_url();
    $customApiEndpoint = '/wp-json/wp/v2/posts'; // or your custom endpoint

    $url = $wp_uri . $customApiEndpoint; // outputs https://your-site.com/wp-json/wp/v2/posts
    // $url = 'https://your-site.com/wp-json/wp/v2/posts'; // use this full path variable in case you want to use an absolute path

    $response = wp_remote_get($url);
    $responseData = json_encode($response); // saved under the wp root installation, can be customized to any folder

    file_put_contents('your_api_data_backup.json', $responseData);

}, 10, 2);
Run Code Online (Sandbox Code Playgroud)

灵感来自/sf/ask/3225754941/