Merge + Minify + Refresh

Descripción

This plugin merges/concatenates Cascading Style Sheets & Javascript files into groups. It then minifies the generated files using Minify (for CSS) and Google Closure (for JS – fallback to Minify when not available). Minification is done via WP-Cron so that it doesn’t slow down the website. When JS or CSS changes files are re-processed. No need to empty cache!

Inspired by MinQueue and Dependency Minification plugins.

Minification by Minify and Google Closure

In order to ensure fast loading times its recommended to set long expiry dates for CSS and JS as well as make sure gzip or deflate is on.

Version 1.6 added support for HTTP2 Server Push to further speed up your requests (thanks to Daniel Aleksandersen).

Version 1.6.9 added the ability to specify the cache directory. Set MMR_CACHE_DIR & MMR_CACHE_URL constants in wp-config.php. MMR_CACHE_DIR must be full server path and MMR_CACHE_URL must be absolute URL for this to work correctly (thanks to Daniel Aleksandersen).

Version 1.6.11 added the ability to specify seperate cache urls for javascript and CSS. Use MMR_JS_CACHE_URL & MMR_CSS_CACHE_URL to replace MMR_CACHE_URL.

Version 1.7.0 added the ability to generate .css.gz & .js.gz files. Your webserver may need to be configured to use these files. Here is how to use these files in Apache:

#Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

#Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

#Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=is_gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=is_gzip:1]
Header set Content-Encoding "gzip" env=is_gzip

Note Installing this plugin on a server with the eAccellerator module installed has the potential to break as Minify uses anonymous functions which return NULL. View eAccellerator Issue Thread

Features

  • Merges JS and CSS files to reduce the number of HTTP requests
  • Handles scripts loaded in the header & footer
  • Compatable with localized scripts
  • Creates WP-Cron for minification as this can take some time to complete
  • Minifies JS with Google Closure (requires php exec) with fallback to Minify
  • Minifies CSS with Minify
  • Failed minification doesn’t break the site. Visitors will instead only see the merged results
  • Stores Assets in /wp-content/mmr/ folder
  • Uses last modified date in filename so any changes to JS or CSS automatically get re-processed and downloaded on browser refresh
  • View status of merge and minify on settings page in WordPress admin
  • Option to enable http2 server push (thanks to Daniel Aleksandersen)
  • Option to enable output buffering for compatability and so footer scripts can be HTTP2 pushed
  • Ability to turn off minification
  • Ability to turn off concatination
  • Ability to manually ignore scripts or css
  • Ignores conditional scripts and styles
  • Ability to specify cache directories
  • Ability to generate .css.gz & .js.gz files (Thanks to Marcus Svensson)

Reseñas

Works with buddypress, buddyboss, rtmedia

6logics

This plugin saved my life. 52 JS files reduced to 7 JS files and everything is working perfectly fine. I was unable to combine css & js using w3tc, also some of the functionality and styles stopped working... Thank you for such a great effort!

Great Plugin and Works!!!!

wpdesign13

I'm here just to support the developer and say thank you very much!!! I try it first in a complex WordPress install to test, now I'm using this in different sites. Best regards (keep the good work), wpdesign13.

Leer todas las 29 reseñas

Registro de cambios

1.7.6

  • Added Support for Gonzales. (https://tomasz-dobrzynski.com/wordpress-gonzales)

1.7.5

  • Fix WordPress in subfolder identification issue. (Bedrock compatibility – Thanks plankguy)

1.7.4

  • Fix usage of clone for php7 compatibility check (Thanks for the heads up mariodabek)

1.7.3

  • Improve CSS concatenation (Thanks to fhoech)

1.7.2

  • older versions of gzip don’t have the -keep flag

1.7.1

  • Fix HTTP2 server push only adding header for one file & ignoring settings

1.7.0

  • Added the ability to generate .css.gz & .js.gz files (Thanks to Marcus Svensson)

1.6.14

  • Fix strange characters message when activating plugin

1.6.13

  • Improvements to http2 push (thanks to Daniel Aleksandersen – https://ctrl.blog)

1.6.12

  • Initialise wp_scripts & wp_styles if they haven’t loaded (Thanks Andrew Miguelez)
  • Replace depreciated wp_clone with clone
  • Improved java detection
  • Upgrade to latest version of Minify
  • Upgrade to latest version of Closure

1.6.11

  • Ability to seperate cache urls for javascript and CSS (MMR_JS_CACHE_URL & MMR_CSS_CACHE_URL)

1.6.10

  • Fix concatenation bug (thanks fhoech)

1.6.9

  • Better support for CSS output to the page. This should fix some themes that break.
  • Ability to specify cache directory added. Thanks to Daniel Aleksandersen for help with this.
  • Minor code cleanup

1.6.8

  • Fix External Styles/Scripts ordering

1.6.7

  • Check Java version is sufficient for Google Closure to work

1.6.6

  • Fix bugs introduced by 1.6.4

1.6.5

  • Fix bugs introduced by 1.6.4

1.6.4

  • Fix MMR when WordPress installed in a sub folder

1.6.3

  • Ignore conditional scripts and styles

1.6.2

  • Upgraded Minify to latest version
  • Upgraded Closure to latest version

1.6.1

  • MMR looks for non minified scripts and styles by default (eg. script.min.js = script.js). If found it will use them. This improves compatibility and can fix minification errors.

1.6

  • Option to enable http2 server push (thanks to Daniel Aleksandersen – https://ctrl.blog)
  • Option to enable output buffering for compatability and so footer scripts can be HTTP2 pushed
  • Ability to turn off minification
  • Ability to turn off concatination
  • Reduced plugin memory usage by only including Minify when required
  • Ability to manually ignore scripts or css
  • Changed hashes from md5 to adler32 as it is faster

1.5.2

  • Upgrade Minify to latest version

1.5.1

  • Only load admin js & css on the mmr options page

1.5

  • Display last accessed date in admin
  • Remove unused variables
  • Option to turn off merging

1.4.3

  • Fix wrong variable name

1.4.2

  • Append ; to merged script files to prevent javascript errors

1.4.1

  • woocommerce compatability

1.4

  • Remove unused code in insepect_scripts()
  • Resolved issues with late enqued scripts and styles
  • Changed code for removal of string continuations
  • Stopped dequeing styles and scripts as we now use done

1.3

  • Process styles/scriptes enqued within body of page in the footer
  • Prevent scripts enqued within body of page outputting twice
  • Clear previous processed files fully when purge all clicked

1.2

  • Bugfix

1.1

  • Only write admin ajax response when it has changed
  • CSS now compressed using Minify
  • JS compressed with Minify when Closure not available

1.0

  • Don’t remove unminified files anymore for rare occasions when css or js return a 404 error
  • Admin now updates automatically.

0.9

  • Fix issue with scripts failing to compile because of remove_continuations

0.8

  • Fix bug when javascript and css has same handle

0.7

  • Bugfix

0.6

  • Remove Javascript String Continuations
  • Show queued scripts/css in admin
  • Prevent YUI Compressor stripping 0 second units (minified transitions now work)

0.5

  • Ensure file paths are absolute
  • Use ABSPATH instead of DOCUMENT_ROOT

0.4

  • Ignore CSS url paths that start with http

0.3

  • Minor code refactoring and cleanup

0.2

  • Log error when exec not available
  • Fix remote url detection
  • Fix admin header redirect

0.1

  • Lanzamiento inicial

Colaboradores y desarrolladores

Este software es de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

Ver el código