<?php /** * The Third Party integration with AMP plugin. * * @since 2.9.8.6 * @package LiteSpeed_Cache * @subpackage LiteSpeed_Cache/thirdparty * @author LiteSpeed Technologies <info@litespeedtech.com> */ namespace LiteSpeed\Thirdparty ; defined( 'WPINC' ) || exit ; use \LiteSpeed\API ; class AMP { /** * @since 4.2 */ private static function _maybe_amp( $amp_function ) { if ( is_admin() ) { return; } if ( ! isset( $_GET[ 'amp' ] ) && ( ! function_exists( $amp_function ) || ! $amp_function() ) ) { return; } do_action( 'litespeed_debug', '[3rd] ❌ AMP disabled page optm/lazy' ); ! defined( 'LITESPEED_NO_PAGEOPTM' ) && define( 'LITESPEED_NO_PAGEOPTM', true ); ! defined( 'LITESPEED_NO_LAZY' ) && define( 'LITESPEED_NO_LAZY', true ); ! defined( 'LITESPEED_NO_OPTM' ) && define( 'LITESPEED_NO_OPTM', true ); // ! defined( 'LITESPEED_GUEST' ) && define( 'LITESPEED_GUEST', false ); } /** * ampforwp_is_amp_endpoint() from Accelerated Mobile Pages * * @since 4.2 */ public static function maybe_acc_mob_pages() { self::_maybe_amp( 'ampforwp_is_amp_endpoint' ); } /** * Google AMP fix * * @since 4.2.0.1 */ public static function maybe_google_amp() { self::_maybe_amp( 'amp_is_request' ); } /** * CSS async will affect AMP result and * Lazyload will inject JS library which AMP not allowed * need to force set false before load * * @since 2.9.8.6 * @access public */ public static function preload() { add_action( 'wp', __CLASS__ . '::maybe_acc_mob_pages' ); add_action( 'wp', __CLASS__ . '::maybe_google_amp' ); // amp_is_request() from AMP // self::maybe_amp( 'amp_is_request' ); // add_filter( 'litespeed_can_optm', '__return_false' ); // do_action( 'litespeed_conf_force', API::O_OPTM_CSS_ASYNC, false ); // do_action( 'litespeed_conf_force', API::O_MEDIA_LAZY, false ); // do_action( 'litespeed_conf_force', API::O_MEDIA_IFRAME_LAZY, false ); } }