Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
634 views
in Technique[技术] by (71.8m points)

php - Wordpress REST API Slow Response time

I have an issue with the speed of the WordPress REST API. What I’m trying to do is get data for a report about 26k records in total as fast as possible to give the user a fluid user experience. The issue I’m running into is it seems that WordPress loads core, plugins and themes when the REST API is called.

Table

I’ve run out of ways I know to optimize the code, is there some WordPress tweaks anyone knows to improve the speed? Are these results normal for people using the REST API? As you can see the time to run my code isn't the issue but the WordPress overhead is.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Overview: So the issue is a limitation of WordPress as of version 4.8. WordPress is designed to load plugins and themes and all of its core every REST API request. Here is the reason for the slow response time.

Solution: The only current solution is an ajax call to a file in your plugin and loads only part of the WordPress core. The code below is direct file access while still being able to use WordPress functions with fast response time.

//Tell WordPress to only load the basics
define('SHORTINIT',1);

//get path of wp-load.php and load it
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';

// register global database
global $wpdb;

// return data selected from DB to user

Results: Response times are down to 100ms. That's a huge difference from 1069ms to 108ms.

Reference: https://deliciousbrains.com/wordpress-rest-api-vs-custom-request-handlers/

Last notes: The Wordpress REST API is very new, quite powerful and you should be using in most situations where response time is not an issue.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...