HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/public_html/wp-content/plugins/wp-rocket/inc/Engine/Common/Head/ElementTrait.php
<?php
declare(strict_types=1);
namespace WP_Rocket\Engine\Common\Head;

/**
 * Element trait.
 */
trait ElementTrait {
	/**
	 * Preload link.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	protected function preload_link( array $args = [] ) {
		$args['rel'] = 'preload';
		$args[]      = 'data-rocket-preload';
		return $this->link( $args );
	}

	/**
	 * Preconnect link.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	protected function preconnect_link( array $args = [] ) {
		$args['rel'] = 'preconnect';
		return $this->link( $args );
	}

	/**
	 * Dns_prefetch link.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	protected function dns_prefetch_link( array $args = [] ) {
		$args['rel'] = 'dns-prefetch';
		return $this->link( $args );
	}

	/**
	 * Prefetch link.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	protected function prefetch_link( array $args = [] ) {
		$args['rel'] = 'prefetch';
		return $this->link( $args );
	}

	/**
	 * Prerender link.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	protected function prerender_link( array $args = [] ) {
		$args['rel'] = 'prerender';
		return $this->link( $args );
	}

	/**
	 * Stylesheet link.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	protected function stylesheet_link( array $args = [] ) {
		$args['rel'] = 'stylesheet';
		return $this->link( $args );
	}

	/**
	 * Style tag.
	 *
	 * @param string $css CSS content.
	 * @param array  $args Element args.
	 * @return array|string[]
	 */
	protected function style_tag( string $css = '', array $args = [] ) {
		$element              = [
			'open_tag' => '<style',
		];
		$element             += wp_parse_args(
			$args,
			[
				'inner_content' => $css,
			]
		);
		$element['close_tag'] = '</style>';

		return $this->prepare_element( $element );
	}

	/**
	 * Noscript tag.
	 *
	 * @param string $content Element contents.
	 * @param array  $args Element args.
	 * @return array|string[]
	 */
	protected function noscript_tag( string $content = '', array $args = [] ) {
		$element              = [
			'open_tag' => '<noscript',
		];
		$element             += wp_parse_args(
			$args,
			[
				'inner_content' => $content,
			]
			);
		$element['close_tag'] = '</noscript>';

		return $this->prepare_element( $element );
	}

	/**
	 * Generic link tag.
	 *
	 * @param array $args Element args.
	 * @return array|string[]
	 */
	private function link( array $args = [] ) {
		$element  = [
			'open_tag' => '<link',
		];
		$element += wp_parse_args(
			$args,
			[
				'href' => '',
			]
		);

		return $this->prepare_element( $element );
	}

	/**
	 * Prepare element by adding any additional attributes.
	 *
	 * @param array $element Current element.
	 *
	 * @return array
	 */
	private function prepare_element( array $element ): array {
		if ( ! rocket_get_constant( 'WP_ROCKET_DEBUG', false ) ) {
			return $element;
		}
		$element['data-rocket-feature'] = $this->feature;
		return $element;
	}
}