/* Convert images to webp */ add_filter( 'wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp' ); function wpturbo_handle_upload_convert_to_webp( $upload ) { if ( $upload['type'] == 'image/jpeg' || $upload['type'] == 'image/png' || $upload['type'] == 'image/gif' ) { $file_path = $upload['file']; /* Check if ImageMagick or GD is available */ if ( extension_loaded( 'imagick' ) || extension_loaded( 'gd' ) ) { $image_editor = wp_get_image_editor( $file_path ); if ( ! is_wp_error( $image_editor ) ) { $file_info = pathinfo( $file_path ); $dirname = $file_info['dirname']; $filename = $file_info['filename']; /* Create a new file path for the WebP image */ $new_file_path = $dirname . '/' . $filename . '.webp'; /* Attempt to save the image in WebP format */ $saved_image = $image_editor->save( $new_file_path, 'image/webp' ); if ( ! is_wp_error( $saved_image ) && file_exists( $saved_image['path'] ) ) { /* Success: replace the uploaded image with the WebP image */ $upload['file'] = $saved_image['path']; $upload['url'] = str_replace( basename( $upload['url'] ), basename( $saved_image['path'] ), $upload['url'] ); $upload['type'] = 'image/webp'; /* Optionally remove the original image */ @unlink( $file_path ); } } } } return $upload; } /* Minify files in wordpress */ class FLHM_HTML_Compression { protected $flhm_compress_css = true; protected $flhm_compress_js = true; protected $flhm_info_comment = true; protected $flhm_remove_comments = true; protected $html; public function __construct($html) { if (!empty($html)) { $this->flhm_parseHTML($html); } } public function __toString() { return $this->html; } protected function flhm_bottomComment($raw, $compressed) { $raw = strlen($raw); $compressed = strlen($compressed); $savings = ($raw-$compressed) / $raw * 100; $savings = round($savings, 2); return ''; } protected function flhm_minifyHTML($html) { $pattern = '/<(?