Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/plugins/optimole-wp/inc/hero_preloader.php
Назад
<?php /** * Optimole Hero Preloader. * * @package Optimole/Inc * @copyright Copyright (c) 2023, Hardeep Asrani * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License */ /** * Class Optml_Hero_Preloader */ class Optml_Hero_Preloader { /** * Hold the settings object. * * @var Optml_Settings Settings object. */ public $settings; /** * Cached object instance. * * @var Optml_Hero_Preloader */ protected static $instance = null; /** * Has flagged preloading image. * * @var bool */ protected static $has_flagged_preloading_image = false; /** * Has flagged preloading logo to prevent footer logos from being targetted. * * @var bool */ protected static $has_flagged_preloading_logo = false; /** * Class instance method. * * @static * @return Optml_Hero_Preloader * @since 3.9.0 * @access public */ public static function instance() { if ( null === self::$instance || ( self::$instance->settings !== null && ( ! self::$instance->settings->is_connected() ) ) ) { self::$instance = new self(); self::$instance->settings = new Optml_Settings(); if ( self::$instance->settings->is_connected() && ! function_exists( 'wp_get_loading_optimization_attributes' ) ) { self::$instance->init(); } } return self::$instance; } /** * The initialize method. * * @since 3.9.0 * @access public */ public function init() { add_filter( 'get_header_image_tag_attributes', [ $this, 'add_preload' ] ); add_filter( 'post_thumbnail_html', [ $this, 'add_preload_to_thumbnail' ] ); add_filter( 'wp_get_attachment_image_attributes', [ $this, 'add_preload_to_image_attributes' ], 10, 2 ); add_filter( 'get_custom_logo_image_attributes', [ $this, 'add_preload_to_logo' ] ); add_filter( 'wp_content_img_tag', [ $this, 'add_preload_to_thumbnail' ] ); } /** * Add preload attribute to image. * * @since 3.9.0 * @access public * * @param array $attr Image attributes. * * @return array */ public function add_preload( $attr ) { if ( self::$has_flagged_preloading_image ) { return $attr; } self::$has_flagged_preloading_image = true; $attr['fetchpriority'] = 'high'; return $attr; } /** * Add preload attribute to thumbnail. * * @since 3.9.0 * @access public * * @param string $html The post thumbnail HTML. * * @return string */ public function add_preload_to_thumbnail( $html ) { if ( self::$has_flagged_preloading_image ) { return $html; } if ( ! empty( $html ) && strpos( $html, 'loading="lazy"' ) === false && strpos( $html, 'fetchpriority=' ) === false ) { self::$has_flagged_preloading_image = true; $html = str_replace( '<img', '<img fetchpriority="high"', $html ); } return $html; } /** * Filter attachment image attributes. * * @since 3.9.0 * @access public * * @param array $attr Image attributes. * @param object $attachment Image attachment. * * @return array */ public function add_preload_to_image_attributes( $attr, $attachment ) { if ( self::$has_flagged_preloading_image ) { return $attr; } global $wp_query; $post = null; $queried_post = get_queried_object(); if ( is_singular() && $queried_post instanceof WP_Post ) { $post = $queried_post; } elseif ( $wp_query->is_main_query() && $wp_query->post_count > 0 && isset( $wp_query->posts[0] ) ) { $post = $wp_query->posts[0]; } if ( $post instanceof WP_Post && $attachment instanceof WP_Post && (int) get_post_thumbnail_id( $post ) === $attachment->ID ) { $attr = $this->add_preload( $attr ); } return $attr; } /** * Add preload attribute to logo. * * @since 3.9.0 * @access public * * @param array $attr Image attributes. * * @return array */ public function add_preload_to_logo( $attr ) { if ( self::$has_flagged_preloading_logo ) { return $attr; } self::$has_flagged_preloading_logo = true; $attr['fetchpriority'] = 'high'; return $attr; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка