Merge + Minify + Refresh

Описание

Этот плагин объединяет / объединяет каскадные таблицы стилей и amp; Файлы Javascript в группы. Затем он минимизирует сгенерированные файлы, используя Minify (для CSS) и Google Closure (для JS — возврат к Minify, когда он недоступен). Минерализация осуществляется через WP-Cron, чтобы не замедлять работу сайта. Когда файлы изменений JS или CSS обрабатываются повторно. Не нужно очищать кеш!

Вдохновленный MinQueue и Плагины зависимостей .

Минимизация Свернуть и Google Закрытие

Чтобы обеспечить быструю загрузку, рекомендуется установить длительные даты истечения срока действия для CSS и JS, а также убедиться, что gzip или deflate включен.

В версии 1.10 добавлен фильтр should_mmr, который позволяет разработчикам отключать MMR при необходимости. Вы можете использовать это, чтобы отключить MMR для определенных ролей WordPress или с некоторыми компоновщиками страниц. Были созданы три новых плагина, которые используют это:
Merge + Minify + Refresh Check DIVI, Merge + Minify + Refresh Check Visual Composer и Merge + Minify + Refresh Check Beaver Builder. Пожалуйста, установите их при необходимости.

Версия 1.6 добавила поддержку HTTP2 Server Push, чтобы ускорить ваши запросы (спасибо Daniel Aleksandersen ).

Версия 1.6.9 добавила возможность указать каталог для хранения кэша. Установите константы MMR_CACHE_DIR и MMR_CACHE_URL в wp-config.php. Константа MMR_CACHE_DIR должна содержать полный путь к серверу, а путь MMR_CACHE_URL должен быть абсолютным URL для правильной работы (спасибо Даниэль Александрсен).

Версия 1.6.11 добавила возможность указывать отдельные URL-адреса для кэша JavaScript и CSS. Используйте MMR_JS_CACHE_URL и MMR_CSS_CACHE_URL, чтобы заменить MMR_CACHE_URL.

Версия 1.7.0 добавила возможность генерации .css.gz и .js.gz. Возможно, ваш веб-сервер требует настройки для использования этих файлов. Вот как использовать эти файлы в 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

В версии 1.8.8 добавлен хук «merge_minify_refresh_done», который срабатывает при изменении JS или CSS.

Версия 1.11 добавляет две новых константы:
MMR_USE_CLOSURE — позволяет отключить минификацию Javascript через Google Closure.
MMR_REMOVE_EXPIRED — отключает удаление просроченных файлов.

В версии 1.13 добавлено два новых фильтра, которые могут быть использованы для исключения некоторых файлов:
mmr_ignored_css_sources
mmr_ingnored_js_sources
Версия 1.13 также автоматически перемещает встроенные стили WordPress в общую таблицу стилей, которую затем ставит в очередь.

Version 1.14.3 added two new filters which can be used to modify the output before it gets saved:
modify_css_output_before_save
modify_js_output_before_save

Примечание Установка этого плагина на сервере с установленным модулем eAccellerator может привести к поломке, поскольку Minify использует анонимные функции, которые возвращают NULL. Просмотр темы проблемы eAccellerator

Особенности

  • Слияние файлов JS и CSS для уменьшения количества HTTP-запросов
  • Обрабатывает скрипты, загружаемые в заголовок & amp; нижний колонтитул
  • Compatible with localised scripts
  • Создает WP-Cron для минимизации, так как это может занять некоторое время, чтобы завершить
  • Минимизирует JS с Google Closure (требуется php exec) с резервным копированием Minify
  • Минимизирует CSS с помощью Minify
  • Неудачная минимизация не разбивает сайт. Посетители вместо этого будут видеть только объединенные результаты
  • Сохраняет активы в / wp-content / mmr / folder
  • Использует последнюю измененную дату в имени файла, поэтому любые изменения в JS или CSS автоматически обрабатываются и загружаются при обновлении браузера
  • Просмотр статуса слияния и минимизации на странице настроек в WordPress admin
  • Возможность включить HTTP/2 Server Push (спасибо Даниэль Александрсен)
  • Option to enable output buffering for compatibility and so footer scripts can be HTTP2 pushed
  • Возможность отключить минимизацию
  • Ability to turn off concatenation
  • Возможность ручного игнорирования скриптов или css
  • Игнорирует условные скрипты и стили
  • Возможность указывать каталоги для хранения кеша
  • Возможность генерировать .css.gz и .js.gz (спасибо Маркусу Свенссону)
  • Работает с мультисайтом WordPress

Установка

  1. Загрузите папку merge-minify-refresh в каталог / wp-content / plugins / или загрузите zip в WordPress
  2. Активируйте плагин используя меню «Плагины» в WordPress

Отзывы

08.04.2023 1 ответ
I used a website speed test to look at the differences before and after installing this plugin. Of course I waited a while for the merging and minifying to take effect i.e. I visited my website and moved from page to page. The plugin got the number of requests down by 20. What about speed? Well the load time does vary. Even without the plugin, sometimes the website responded a bit faster. It looks like this plugin has reduced the load time for my website by 0.8 seconds. To get this reduction in load time, I had to turn on "enable output buffering" and both "enable preload" options. Without these options turned on the speed increase was about 0.4 or 0.5 seconds. This an excellent result. Thanks very much. Now http2 is supposed to make merging have less effect. Is this really true? Is this still the case? Are all the effects from minifying or are they from merging as well?
31.08.2022 5 ответов
It seems to me that: * if the CSS files has @includes it will not work. The option to skip CSS seems to be ignored * If the site is password protected (htpasswd protected site) the minifying part will be skipped.
04.06.2022 1 ответ
I discovered that autoptimize generated unwanted 302 redirections. There was a reason for it. autoptimize generates new CSS and JS filenames from time to time. So, then googlebot is lost and autoptimize creates a 302 redirect from old to newly generated CSS and JS files. If you disable their Merge, minify is much better. it uses variables in the URL to show new versions of files. For your information this is the Wordpress approach. It is the best because, Googlebot understands it and it does not create a 404 or a 302 when a CSS file or a JS file is refreshed. To my knowledge this plugin is the only one with this approach. It is super simple. The developer of this plugin didn't add useless features. i like it. You just install and it is ready out of the box. We don't need other features. We need this plugin to remain efficient with new versions and to remain the best as it is now. I can see that in the background, this plugin does a great job. It reduces the number of files to the minimum and it is really lightweight. By far, this plugin is the best Merge, minify wordpress plugin
30.05.2021 1 ответ
Combines, but doesn't properly minify .js and fails on dynamic parts of Woocommerce checkout page - vanilla theme - both .js and css.
Посмотреть все 68 отзывов

Участники и разработчики

«Merge + Minify + Refresh» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Перевести «Merge + Minify + Refresh» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

2.7

  • Add logging when generating gzip files

2.6

  • Changed gzip to not require exec
  • fixed gzip not working when minification is disabled

2.5

  • Fix blank files being generated sometimes

2.4

  • Fixed minify error when gzip enabled

2.3

  • MMR now supports script defer/async

2.2

  • Fixed css files not being merged

2.1

  • Fixed merged files that don’t have a trailing semicolon causing syntax errors
  • Fix syntax error caused by media being a boolean

2.0

  • Updated Closure
  • Updated PHP Minify
  • Completely changed the way files are merged. Instead of merging all of the files and then minifying the entire merged file, it now minifys all of the files separatly before merging them. This allows the plugin to use the pre-minified versions of files, saving initial bandwidth on updates and processing time.
  • Changed default behaviour to splitting on inline scripts and styles. This is considered safer than merging, but merging can be turned back on in the settings.

1.15.1

  • Fix PHP warnings

1.15.0

  • Resolve issue with inline CSS not being included
  • Add ability to break merged files based on inline scripts/styles
  • Set plugin minimum PHP version to 7.0

1.14.7

  • Fix inline css and js not being enqueued correctly
  • Disable inlining small CSS files

1.14.6

  • Add MMR version to generated files — ensures plugin updates are applied
  • Multisite files now use seperate directories — fixes purging issues

1.14.5

  • Resolved an issue with inline scripts not working correctly.

1.14.4

  • Remove depreciated warning notices about variables set that aren’t defined

1.14.3

  • file_put_contents: added the LOCK_EX flag when writing to prevent anyone else writing to the file at the same time
  • added modify_js_output_before_save and modify_css_output_before_save filters — Thanks to mewcrazy

1.14.2

  • Add support for a decoupled WordPress configuration — Thanks to AbdulRaheem

1.14.1

  • Upgrade Closure and PHP Minify

1.14.0

  • Added ability to disable merging WordPress Global Styles
  • Fixed issue with missing WordPress Global Styles

1.13.3

  • Fix «String offset cast occurred» php notice

1.12.1

  • Fix css minmax minifying incorrectly

1.12

  • Upgrade Closure and PHP Minify

1.11.3

  • Исправление проблемы с поломкой стилей встроенных SVG

1.11.2

  • Ensure push urls include scheme for backwards compatability

1.11.1

  • Disable push for external files

1.11

  • Disable Google Closure Javascript minification with MMR_USE_CLOSURE constant
  • Disable removing expired files with MMR_REMOVE_EXPIRED constant
  • Enable push for ignored files

1.10.11

  • Отключить MMR при использовании WordPress Customiser

1.10.10

  • Исправлена ошибка, из-за которой JS/CSS минимизировался, даже если минимизация была отключена.

1.10.9

  • Upgraded to latest version of closure
  • Re-enabled HTTP2 push for when the server supports it

1.10.8

  • Prevent php warning showing when handle path is invalid

1.10.7

  • Fix Reported Security Vulnerability
  • Обновление до последней версии

1.10.6

  • Prevent error if mbstring php extension isn’t installed. Thanks @zelon

1.10.5

  • Convert Western Latin 1 Encoding to UTF8
  • Added upgrade notice callback for future use

1.10.4

  • Fixed Undefined variable: ext (thanks to @imsadhappy)
  • Changed HTTP2 push to only preload

1.10.3

  • Fixed issue with invalid file size calculations

1.10.2

  • Fixed issue with merge_minify_refresh_done action not working correctly

1.10.1

  • Code Cleanup
  • Added ability to http2 push CSS or JS seperately
  • Improved reliability of minification + added hourly cron to check
  • Fix issue with mmr_minify action running multiple times

1.10

  • Added should_mmr filter and split DIVI, Beaver Builder and Visual Composer checks into seperate plugins
  • Code Cleanup
  • Fix warning when running wp.cron.php directly
  • Prevent failed to open stream error
  • Added merge_minify_refresh_merged action

1.9.0

  • Disable MMR when Divi theme is enabled and page is being edited
  • Disable MMR when Beaver Builder is in use and page is being edited
  • Upgrade Google Closure to the latest version
  • Upgrade PHP Minify to the latest version
  • Add check to see if @import is used in CSS file.

1.8.12

  • Модернизированное закрытие до последней версии
  • Fixed MMR so it works when WordPress and wp-content are in non-standard locations
  • Fixed MMR admin unecessarily updating log text

1.8.11

  • Upgraded Minify and Closure to latest versions

1.8.10

  • Fix for PHP < 7. Thanks to @Roy

1.8.9

  • Fix for incorrect function name

1.8.8

  • Multisite URL Fixes
  • Added action that fires when JS or CSS has updated. Thanks to @lucasbustamante
  • Обновление закрытия до последнего

1.8.7

  • Обновление Java-обнаружения для Java 9+
  • Очистить запланированные крючки при очистке и отключении плагина
  • Обновление закрытия до последнего

1.8.6

  • Поддержка Multisite Network

1.8.5

  • Closure теперь работает с продолжением строки (удаленный код совместимости)
  • Исправить потенциальную ошибку с помощью

1.8.4

  • Исправить проблему с помощью последнего доступа
  • Исправить проблему с использованием файлов css, не находящихся в очереди

1.8.3

  • Исправить проблему, если данные wp_localize_script не установлены правильно

1.8.2

  • Массивная очистка кода.
  • Отключить MMR во внешнем режиме редактирования Visual Composer

1.8.1

  • Убедитесь, что enqueued css / js имеют уникальные ручки (исправление для NEX-форм)

1.8

  • Обновлено Закрытие и Минимизация до последних версий
  • Очистка кода
  • MMR теперь проверяет расширение файла, так что плагины, в которых запущены php-файлы (mototress и т. Д.),

1.7.6

  • Добавлена ​​поддержка Gonzales. (Https://tomasz-dobrzynski.com/wordpress-gonzales)

1.7.5

  • Исправить WordPress в проблеме идентификации подпапки. (Совместимость Bedrock — Спасибо, plankguy)

1.7.4

  • Исправьте использование клона для проверки совместимости php7 (спасибо за хед-ап mariodabek)

1.7.3

  • Улучшение конкатенации CSS (благодаря fhoech)

1.7.2

  • более старые версии gzip не имеют флага -keep

1.7.1

  • Исправьте сервер HTTP2, чтобы добавить только заголовок для одного файла & amp; игнорирование настроек

1.7.0

  • Добавлена ​​возможность генерации .css.gz & amp; .js.gz (спасибо Маркусу Свенссону)

1.6.14

  • Исправить странные сообщения символов при активации плагина

1.6.13

  • Усовершенствования push2 (спасибо Daniel Alexandersen — https://ctrl.blog)

1.6.12

  • Инициализация wp_scripts & amp; wp_styles, если они не загружены (спасибо Andrew Miguelez)
  • Заменить обесцененный wp_clone с помощью клонирования
  • Улучшенное обнаружение Java
  • Обновите до последней версии Minify
  • Обновление до последней версии Closure

1.6.11

  • Возможность отделить URL-адреса кеша для javascript и CSS (MMR_JS_CACHE_URL и MMR_CSS_CACHE_URL)

1.6.10

  • Исправить ошибку конкатенации (спасибо fhoech)

1.6.9

  • Лучшая поддержка вывода CSS на страницу. Это должно исправить некоторые темы, которые ломаются.
  • Возможность указать каталог кеша. Спасибо Даниэлю Александерсену за помощь в этом.
  • Незначительная очистка кода

1.6.8

  • Настройка внешних стилей / скриптов

1.6.7

  • Проверить версию Java достаточно для работы Google Closure

1.6.6

  • Исправить ошибки, введенные в 1.6.4

1.6.5

  • Исправить ошибки, введенные в 1.6.4

1.6.4

  • Исправить MMR, когда WordPress установлен в подпапке

1.6.3

  • Игнорировать условные скрипты и стили

1.6.2

  • Модернизированный Свернуть до последней версии
  • Модернизированное закрытие до последней версии

1.6.1

  • MMR ищет по умолчанию нестандартные скрипты и стили (например, script.min.js = script.js). Если они будут найдены, они будут использовать их. Это улучшает совместимость и устраняет ошибки минимизации.

1.6

  • Возможность включения push-сервера http2 (спасибо Daniel Aleksandersen — https://ctrl.blog)
  • Возможность включения буферизации вывода для совместимости и поэтому сценарии нижнего колонтитула могут быть нажаты HTTP2
  • Возможность отключить минимизацию
  • Возможность отключить конкатенацию
  • Уменьшено использование памяти плагина, включая только Minify при необходимости.
  • Возможность ручного игнорирования скриптов или css
  • Изменены хэши от md5 до adler32, поскольку он быстрее

1.5.2

  • Обновление до последней версии

1.5.1

  • Загружать только admin js & amp; css на странице параметров mmr

1.5

  • Показывать последнюю доступную дату в admin
  • Удалить неиспользуемые переменные
  • Возможность отключить слияние

1.4.3

  • Исправить неправильное имя переменной

1.4.2

  • Добавить; объединить файлы сценариев для предотвращения ошибок JavaScript

1.4.1

  • совместимость woocommerce

1.4

  • Удалить неиспользуемый код в insepect_scripts ()
  • Решенные проблемы с поздними появляющимися скриптами и стилями
  • Изменен код для удаления продолжений строки
  • Остановлены стили и сценарии деоквин, как мы теперь используем

1.3

  • Стили процесса / сценарии, появляющиеся в теле страницы в нижнем колонтитуле
  • Предотвращение одновременного вывода скриптов в тело страницы
  • Полностью очистить предыдущие обработанные файлы при каждом нажатии

1.2

  • Исправлена ​​ошибка

1.1

  • Только напишите ответ администратора ajax, когда он изменился
  • CSS теперь сжат с помощью Minify
  • JS сжат с помощью Minify, когда Closure недоступен

1.0

  • Не удалять unminified файлы больше в редких случаях, когда css или js возвращают ошибку 404
  • Теперь администратор обновляется автоматически.

0.9

  • Исправить проблему со сценариями, которые невозможно скомпилировать из-за remove_continuations

0.8

  • Исправить ошибку, когда javascript и css имеют одинаковый дескриптор

0.7

  • Исправлена ​​ошибка

0.6

  • Удаление продолжений Javascript String
  • Показать сценарии в очереди / css в admin
  • Предотвращение блокировки компрессора YUI 0 вторых единиц (теперь выполняются сокращенные переходы)

0.5

  • Убедитесь, что пути к файлам являются абсолютными
  • Использовать ABSPATH вместо DOCUMENT_ROOT

0.4

  • Игнорировать пути URL-адреса CSS, которые начинаются с http

0.3

  • Неправильный реорганизация кода и очистка

0.2

  • Ошибка журнала при отсутствии exec
  • Исправить удаленное обнаружение URL-адресов
  • Исправить перенаправление заголовка admin

0.1

  • Начальная версия