# optimole-wp/3.11.0/inc/compatibilities/wp_rest_cache.php

Optimole – Optimize Images | Convert WebP &amp; AVIF | CDN &amp; Lazy Load | Image Optimization, version 3.11.0. 40 lines.

- Page: https://pluginprobe.com/plugins/optimole-wp/3.11.0/code/inc/compatibilities/wp_rest_cache.php
- Raw: https://pluginprobe.com/plugins/optimole-wp/3.11.0/raw/inc/compatibilities/wp_rest_cache.php
- Modified: 2021-09-28T15:54:56+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/optimole-wp/3.11.0/code/inc/compatibilities/wp_rest_cache.php#L10-L20`.

```php
<?php

/**
 * Class Optml_wp_rest_cache.
 *
 * @reason Wp rest cache stores the api response before Optimole starts replacing urls
 */
class Optml_wp_rest_cache extends Optml_compatibility {

	/**
	 * Should we load the integration logic.
	 *
	 * @return bool Should we load.
	 */
	function should_load() {
		include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
		return is_plugin_active( 'wp-rest-cache/wp-rest-cache.php' );
	}

	/**
	 * Register integration details.
	 */
	public function register() {
		add_filter( 'rest_pre_echo_response', [$this, 'api_optimization'], 10, 3 );
	}

	/**
	 * Replace the urls in the api response.
	 *
	 * @param array           $result An array containing the result before our optimization.
	 * @param WP_REST_Server  $server  Server instance.
	 * @param WP_REST_Request $request Request used to generate the response.
	 * @return array The decoded result with the replaced urls.
	 */
	public function api_optimization( $result, $server, $request ) {
		$result = json_decode( Optml_Main::instance()->manager->process_urls_from_content( json_encode( $result ) ) );
		return $result;
	}
}

```
