403Webshell
Server IP : 213.132.222.41  /  Your IP : 216.73.216.254
Web Server : Apache
System : Linux plesk4.nlhosting.net 6.1.0-0.deb11.50-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1~deb11u1 (2026-07-02) x86_64
User : thecovenant ( 10927)
PHP Version : 8.3.32
Disable Function : opcache_get_status
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/vhosts/thecovenant.nl/httpdocs/new/wp-content/plugins/optimole-wp/inc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/vhosts/thecovenant.nl/httpdocs/new/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;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit