91 lines
2.4 KiB
PHP
91 lines
2.4 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Protocol Relative Theme Assets
|
||
|
*
|
||
|
* @package FoundationPress
|
||
|
* @since FoundationPress 1.1.0
|
||
|
*/
|
||
|
|
||
|
if ( ! class_exists( 'Foundationpress_Protocol_Relative_Theme_Assets' ) ) :
|
||
|
class Foundationpress_Protocol_Relative_Theme_Assets {
|
||
|
/**
|
||
|
* Plugin URI: https://github.com/ryanjbonnell/Protocol-Relative-Theme-Assets
|
||
|
* Description: Transforms enqueued CSS and JavaScript theme URLs to use protocol-relative paths.
|
||
|
* Version: 1.0
|
||
|
* Author: Ryan J. Bonnell
|
||
|
* Author URI: https://github.com/ryanjbonnell
|
||
|
*
|
||
|
* Class Constructor
|
||
|
*
|
||
|
* @access public
|
||
|
* @since 1.0
|
||
|
*/
|
||
|
public function __construct() {
|
||
|
add_filter( 'style_loader_src', array( $this, 'style_loader_src' ), 10, 2 );
|
||
|
add_filter( 'script_loader_src', array( $this, 'script_loader_src' ), 10, 2 );
|
||
|
|
||
|
add_filter( 'template_directory_uri', array( $this, 'template_directory_uri' ), 10, 3 );
|
||
|
add_filter( 'stylesheet_directory_uri', array( $this, 'stylesheet_directory_uri' ), 10, 3 );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Convert
|
||
|
*
|
||
|
* @access private
|
||
|
* @return string
|
||
|
* @since 1.0
|
||
|
*/
|
||
|
private function make_protocol_relative_url( $url ) {
|
||
|
return preg_replace( '(https?://)', '//', $url );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Transform Enqueued Stylesheet URLs
|
||
|
*
|
||
|
* @access public
|
||
|
* @return string
|
||
|
* @since 1.0
|
||
|
*/
|
||
|
public function style_loader_src( $src, $handle ) {
|
||
|
return $this->make_protocol_relative_url( $src );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Transform Enqueued JavaScript URLs
|
||
|
*
|
||
|
* @access public
|
||
|
* @return string
|
||
|
* @since 1.0
|
||
|
*/
|
||
|
public function script_loader_src( $src, $handle ) {
|
||
|
return $this->make_protocol_relative_url( $src );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Transform Enqueued Theme Files
|
||
|
*
|
||
|
* @access public
|
||
|
* @return string
|
||
|
* @since 1.0
|
||
|
* @link http://codex.wordpress.org/Function_Reference/get_template_directory_uri
|
||
|
*/
|
||
|
public function template_directory_uri( $template_dir_uri, $template, $theme_root_uri ) {
|
||
|
return $this->make_protocol_relative_url( $template_dir_uri );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Transform Enqueued Theme Files
|
||
|
*
|
||
|
* @access public
|
||
|
* @return string
|
||
|
* @since 1.0
|
||
|
* @link http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri
|
||
|
*/
|
||
|
public function stylesheet_directory_uri( $stylesheet_dir_uri, $stylesheet, $theme_root_uri ) {
|
||
|
return $this->make_protocol_relative_url( $stylesheet_dir_uri );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$foundationpress_protocol_relative_theme_assets = new Foundationpress_Protocol_Relative_Theme_Assets;
|
||
|
endif;
|