How to minify html javascript and css in WordPress without plugins?
I’m facing a great problem on my WordPress website. I have used 3 plugins for minifying. But Google Speed Test says that minifying problem. Now I want to solve my minify problem without using any plugins. My website is: www.linkworld.us
Have any way?
My question is: How to minify HTML javascript and CSS in WordPress without plugins?
How to increase page speed in WordPress website? is the burning questions. Because most of the wordpress website owners are suffering this problems. There are many plugins are available for this problem salvations. It can be solve easily without using any plugins.
One of the major drawbacks yet useful features of WordPress are plugins, they are really useful as they empower the WordPress user with the ability to add a lot of functionality and feature to the website with great simplicity and easy and more importantly without any prior knowledge to programming, the big problem with plugins is that they tend to slow the website and they’re resources hungry so if the website is on a shared hosting plan you might get a warning from your host service provider. So sometimes it’s better to do simple tweaking without a plugin.
In this post will present and step by step tutorial on how to increase your page load speed by minifying JavaScript and HTML without a plugin. Increasing page load speed increases your website performance in the search results as Google puts a huge load on page load time and it also increases your CTR.
Step 1: Go to your website and log into your WordPress dashboard (www.yourwebsitename.com/wp-admin) and enter your credentials, then enter the dashboard.
Step 2: In your dashboard enter your Appearance menu.
Step 3: In the Appearance menu, go to the “Editor” tab.
Step 4: Open the function.php file at the right hand side of the screen and copy and paste the following code in it.
<?php<?phpclass WP_HTML_Compression{ // Settings protected $compress_css = true; protected $compress_js = true; protected $info_comment = true; protected $remove_comments = true; // Variables protected $html; public function __construct($html) { if (!empty($html)) { $this->parseHTML($html); } } public function __toString() { return $this->html; } protected function bottomComment($raw, $compressed) { $raw = strlen($raw); $compressed = strlen($compressed); $savings = ($raw-$compressed) / $raw * 100; $savings = round($savings, 2); return '<!--HTML compressed, size saved '.$savings.'%. From '.$raw.' bytes, now '.$compressed.' bytes-->'; } protected function minifyHTML($html) { $pattern = '/<(?<script>script).*?<\/script\s*>|<(?<style>style).*?<\/style\s*>|<!(?<comment>--).*?-->|<(?<tag>[\/\w.:-]*)(?:".*?"|\'.*?\'|[^\'">]+)*>|(?<text>((<[^!\/\w.:-])?[^<]*)+)|/si'; preg_match_all($pattern, $html, $matches, PREG_SET_ORDER); $overriding = false; $raw_tag = false; // Variable reused for output $html = ''; foreach ($matches as $token) { $tag = (isset($token['tag'])) ? strtolower($token['tag']) : null; $content = $token[0]; if (is_null($tag)) { if ( !empty($token['script']) ) { $strip = $this->compress_js; } else if ( !empty($token['style']) ) { $strip = $this->compress_css; } else if ($content == '<!--wp-html-compression no compression-->') { $overriding = !$overriding; // Don't print the comment continue; } else if ($this->remove_comments) { if (!$overriding && $raw_tag != 'textarea') { // Remove any HTML comments, except MSIE conditional comments $content = preg_replace('/<!--(?!\s*(?:\[if [^\]]+]|<!|>))(?:(?!-->).)*-->/s', '', $content); } } } else { if ($tag == 'pre' || $tag == 'textarea') { $raw_tag = $tag; } else if ($tag == '/pre' || $tag == '/textarea') { $raw_tag = false; } else { if ($raw_tag || $overriding) { $strip = false; } else { $strip = true; // Remove any empty attributes, except: // action, alt, content, src $content = preg_replace('/(\s+)(\w++(?<!\baction|\balt|\bcontent|\bsrc)="")/', '$1', $content); // Remove any space before the end of self-closing XHTML tags // JavaScript excluded $content = str_replace(' />', '/>', $content); } } } if ($strip) { $content = $this->removeWhiteSpace($content); } $html .= $content; } return $html; } public function parseHTML($html) { $this->html = $this->minifyHTML($html); if ($this->info_comment) { $this->html .= "\n" . $this->bottomComment($html, $this->html); } } protected function removeWhiteSpace($str) { $str = str_replace("\t", ' ', $str); $str = str_replace("\n", '', $str); $str = str_replace("\r", '', $str); while (stristr($str, ' ')) { $str = str_replace(' ', ' ', $str); } return $str; }} function wp_html_compression_finish($html){ return new WP_HTML_Compression($html);} function wp_html_compression_start(){ ob_start('wp_html_compression_finish');}add_action('get_header', 'wp_html_compression_start');?>
File source: Github
If this code works for you, then do not forget to say thanks.
Yet with a few lines of code, it is possible to optimise the weight of our files without plugin. For example, to reduce the weight of HTML files from a WordPress theme, copy the following code in the functions.php file at the root of your theme:
add_action('get_header', 'gkp_html_minify_start'); function gkp_html_minify_start() { ob_start( 'gkp_html_minyfy_finish' ); } function gkp_html_minyfy_finish( $html ) { // Suppression des commentaires HTML, // sauf les commentaires conditionnels pour IE $html = preg_replace('/<!--(?!s*(?:[if [^]]+]|!|>))(?:(?!-->).)*-->/s', '', $html); // Suppression des espaces vides $html = str_replace(array("\r\n", "\r", "\n", "\t"), '', $html); while ( stristr($html, ' ')) $html = str_replace(' ', ' ', $html); return $html; }
Thanks