Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/airesvsg/wp-rest-api-cache
Enable caching for WordPress REST API and increase speed of your application
https://github.com/airesvsg/wp-rest-api-cache
api cache rest rest-api wordpress wp
Last synced: 4 days ago
JSON representation
Enable caching for WordPress REST API and increase speed of your application
- Host: GitHub
- URL: https://github.com/airesvsg/wp-rest-api-cache
- Owner: airesvsg
- Created: 2016-05-21T19:54:50.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-02-28T13:02:34.000Z (almost 6 years ago)
- Last Synced: 2025-01-20T17:14:01.477Z (12 days ago)
- Topics: api, cache, rest, rest-api, wordpress, wp
- Language: PHP
- Homepage: http://wordpress.org/plugins/wp-rest-api-cache
- Size: 11.7 KB
- Stars: 247
- Watchers: 10
- Forks: 37
- Open Issues: 10
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
WP REST API Cache
====
Enable caching for WordPress REST API and increase speed of your application- [Installation](#installation)
- [Filters](#filters)
- [How to use filters](#how-to-use-filters)Installation
====
1. Copy the `wp-rest-api-cache` folder into your `wp-content/plugins` folder
2. Activate the `WP REST API Cache` plugin via the plugin admin pageFilters
====
| Filter | Argument(s) |
|-----------|-----------|
| rest_cache_headers | array **$headers**
string **$request_uri**
WP_REST_Server **$server**
WP_REST_Request **$request** |
| rest_cache_skip | boolean **$skip** ( default: WP_DEBUG )
string **$request_uri**
WP_REST_Server **$server**
WP_REST_Request **$request** |
| rest_cache_key | string **$request_uri**
WP_REST_Server **$server**
WP_REST_Request **$request** |
| rest_cache_timeout | int **$timeout**
int **$length**
int **$period** |
| rest_cache_update_options | array **$options** |
| rest_cache_get_options | array **$options** |
| rest_cache_show_admin | boolean **$show** |
| rest_cache_show_admin_menu | boolean **$show** |
| rest_cache_show_admin_bar_menu | boolean **$show** |How to use filters
----
- **sending headers**```PHP
add_filter( 'rest_cache_headers', function( $headers ) {
$headers['Cache-Control'] = 'public, max-age=3600';
return $headers;
} );
```- **changing the cache timeout**
```PHP
add_filter( 'rest_cache_timeout', function() {
// https://codex.wordpress.org/Transients_API#Using_Time_Constants
return 15 * DAY_IN_SECONDS;
} );
```
or
```PHP
add_filter( 'rest_cache_get_options', function( $options ) {
if ( ! isset( $options['timeout'] ) ) {
$options['timeout'] = array();
}// https://codex.wordpress.org/Transients_API#Using_Time_Constants
$options['timeout']['length'] = 15;
$options['timeout']['period'] = DAY_IN_SECONDS;
return $options;
} );
```- **skipping cache**
```PHP
add_filter( 'rest_cache_skip', function( $skip, $request_uri ) {
if ( ! $skip && false !== stripos( $request_uri, 'wp-json/acf/v2' ) ) {
return true;
}return $skip;
}, 10, 2 );
```- **show / hide admin links**
![WP REST API Cache](http://airesgoncalves.com.br/screenshot/wp-rest-api-cache/readme/filter-admin-show.gif)
- **empty cache on post-save**
You can use the wordpress default filter "save_post" if you like to empty the cache on every save of a post, page or custom post type.
```PHP
add_action( 'save_post', function( $post_id ) {
if ( class_exists( 'WP_REST_Cache' ) ) {
WP_REST_Cache::empty_cache();
}
} );
```