79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace WpAssetCleanUp\OptimiseAssets;
 | |
| 
 | |
| use WpAssetCleanUp\Main;
 | |
| use WpAssetCleanUp\Plugin;
 | |
| 
 | |
| /**
 | |
|  * Class LocalFonts
 | |
|  * @package WpAssetCleanUp\OptimiseAssets
 | |
|  */
 | |
| class FontsLocal
 | |
| {
 | |
| 	/**
 | |
| 	 *
 | |
| 	 */
 | |
| 	public function init()
 | |
| 	{
 | |
| 		if (self::preventAnyChange()) {
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		add_action('wp_head', array($this, 'preloadFontFiles'), 1);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 *
 | |
| 	 */
 | |
| 	public function preloadFontFiles()
 | |
| 	{
 | |
| 		// AMP page or Test Mode? Do not print anything
 | |
| 		if ( Plugin::preventAnyFrontendOptimization() || Main::isTestModeActive() ) {
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		if (! $preloadFontFiles = trim(Main::instance()->settings['local_fonts_preload_files'])) {
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		$preloadFontFilesArray = array();
 | |
| 
 | |
| 		if (strpos($preloadFontFiles, "\n") !== false) {
 | |
| 			foreach (explode("\n", $preloadFontFiles) as $preloadFontFile) {
 | |
| 				$preloadFontFile = trim($preloadFontFile);
 | |
| 
 | |
| 				if (! $preloadFontFile) {
 | |
| 					continue;
 | |
| 				}
 | |
| 
 | |
| 				$preloadFontFilesArray[] = $preloadFontFile;
 | |
| 			}
 | |
| 		} else {
 | |
| 			$preloadFontFilesArray[] = $preloadFontFiles;
 | |
| 		}
 | |
| 
 | |
| 		$preloadFontFilesArray = array_unique($preloadFontFilesArray);
 | |
| 
 | |
| 		$preloadFontFilesOutput = '';
 | |
| 
 | |
| 		// Finally, go through the list
 | |
| 		foreach ($preloadFontFilesArray as $preloadFontFile) {
 | |
| 			$preloadFontFilesOutput .= '<link rel="preload" as="font" href="'.esc_attr($preloadFontFile).'" data-wpacu-preload-font="1" crossorigin>'."\n";
 | |
| 		}
 | |
| 
 | |
| 		echo apply_filters('wpacu_preload_local_font_files_output', $preloadFontFilesOutput);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * @return bool
 | |
| 	 */
 | |
| 	public static function preventAnyChange()
 | |
| 	{
 | |
| 		if (defined('WPACU_ALLOW_ONLY_UNLOAD_RULES') && WPACU_ALLOW_ONLY_UNLOAD_RULES) {
 | |
| 			return true;
 | |
| 		}
 | |
| 
 | |
| 		return false;
 | |
| 	}
 | |
| }
 |