oont-contents/plugins/wp-rocket/inc/front/protocol.php
2025-02-08 15:10:23 +01:00

55 lines
1.6 KiB
PHP

<?php
defined( 'ABSPATH' ) || exit;
/**
* Allow to force the protocol rewrite on script, link, img and form tags.
*
* @since 2.7
*
* @param bool true will force the protocol rewrite
*/
$do_rocket_protocol_rewrite = apply_filters( 'do_rocket_protocol_rewrite', false ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound, WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
if ( ( get_rocket_option( 'do_cloudflare', 0 ) && get_rocket_option( 'cloudflare_protocol_rewrite', 0 ) || $do_rocket_protocol_rewrite ) ) {
add_filter( 'rocket_buffer', 'rocket_protocol_rewrite', PHP_INT_MAX );
add_filter( 'wp_calculate_image_srcset', 'rocket_protocol_rewrite_srcset', PHP_INT_MAX );
}
/**
* Remove HTTP protocol on script, link, img and form tags.
*
* @since 2.7
*
* @param string $buffer HTML content.
* @return string Updated HTML content
*/
function rocket_protocol_rewrite( $buffer ) {
$re = "/(<(script|link|img|form)([^>]*)(href|src|action)=[\"'])https?:\\/\\//i";
$subst = '$1//';
$return = preg_replace( $re, $subst, $buffer );
if ( $return ) {
$buffer = $return;
}
return $buffer;
}
/**
* Remove HTTP protocol on srcset attribute generated by WordPress
*
* @since 2.7
*
* @param array $sources an Array of images sources for srcset.
* @return array Updated array of images sources
*/
function rocket_protocol_rewrite_srcset( $sources ) {
if ( (bool) $sources ) {
foreach ( $sources as $i => $source ) {
$sources[ $i ]['url'] = str_replace( [ 'http:', 'https:' ], '', $source['url'] );
}
}
return $sources;
}