
| Hay montones de plugins que sirve para el minimizado del código generado (inline) por WordPress y que resulta en tus páginas visibles en el navegador de los visitantes, y la mayoría funcionan bien, pero en la mayoría de estos plugins siempre añaden demasiadas funcionalidades adicionales, que ocasionalmente provocan conflictos con otros plugins, de caché, optimización, e incluso con servicios del hosting. El códigoPor este motivo, cuando quiero minimizar, o minificar (horrible palabro) como dicen algunos, los códigos HTML, CSS y JS, uso este fragmento de código: /* Miniminizado seguro de HTML, CSS y JS generado */ function ayudawp_minimizar_codigos($buffer) { $buffer = preg_replace(‘/>\s+</’, ‘><‘, $buffer); $buffer = preg_replace(‘/\s{2,}/’, ‘ ‘, $buffer); $buffer = preg_replace_callback(‘#<style.*?>(.*?)</style>#is’, function($matches) { $css = $matches[1]; $css = preg_replace(‘!/\*.*?\*/!s’, », $css); $css = preg_replace(‘/\s*([{}|:;,])\s+/’, ‘$1’, $css); $css = preg_replace(‘/\s\s+(.*)/’, ‘$1’, $css); $css = str_replace(‘;}’, ‘}’, $css); return «<style>{$css}</style>»; }, $buffer); $buffer = preg_replace_callback(‘#<script.*?>(.*?)</script>#is’, function($matches) { $js = $matches[1]; $js = preg_replace(‘/\/\/.*?[\r\n]/’, », $js); $js = preg_replace(‘/\/\*.*?\*\//s’, », $js); $js = preg_replace(‘/\s*([{}|:;,()=+])\s*/’, ‘$1’, $js); $js = preg_replace(‘/\s\s+/’, ‘ ‘, $js); return «<script>{$js}</script>»; }, $buffer); return $buffer; } function ayudawp_empezar_minimizar_codigos() { ob_start(‘ayudawp_minimizar_codigos’); } add_action(‘template_redirect’, function() { // Solo se ejecuta en las partes principales públicas if ( (is_front_page() || is_home() || is_single() || is_page() || is_archive() || is_search()) && !is_admin() && !defined(‘DOING_AJAX’) && !is_feed() && !is_404() ) { ayudawp_empezar_minimizar_codigos(); } }); ¿Qué hace el código? Minimiza todos los códigos HTML, CSS y JS inline generados, al eliminar espacios en blanco, tabuladores y todo lo que sobra habitualmente a los códigos, sin modificar ningún código en sí.Es compatible con los sistemas de caché porque solo se ejecuta en frontend. En concreto se ejecuta en los siguientes entornos:PortadaBlog principal Entradas individualesPáginasArchivos (categorías, etiquetas, autores, fechas…) Resultados de búsqueda: Evita su ejecución en: AdminAJAXFeeds404API REST¿Cómo añado el código a mi web?Como siempre, hay varias posibilidades:Añadirlo al final del archivo functions.php del tema (hijo) activo.Como snippet usando un plugin de fragmentos de código.Creando un plugin personalizado propio para este código.Añadirlo a un plugin MU o imprescindible.Mi consejo es que, por su tipo de funcionalidad, ajena al tema, esencial y de suma importancia, lo ideal sería a un MU plugin, fácil, se ejecuta con la prioridad necesaria y funcionará siempre, independientemente del tema y otros plugins.¿Funciona bien el código? Es una joya, en páginas sencillas, con poco contenido, reduce una media de un 20% el peso de cada página (multiplica por todas las páginas, entradas, etc., de tu web), mucho más en contenidos más complejos, con más código generado, con más textos, párrafos, ya sabes, pues hay más oportunidades de optimización.A las pruebas me remito… |
Fernando Tellado
Debe estar conectado para enviar un comentario.