Артём Мáлков

Минификация (сжатие) исходного кода (HTML) в WordPress на PHP

28 фев6 комм

Чтобы не быть многословным (ведь я уже подробно разбирал, что такое минификация кода на примере 1C-Bitrix), скажу кратко – это сокращение (сжатие) исходного кода сайта путем удаления переносов строк, лишних пробелов и HTML-комментариев.

Для того чтобы сделать минификацию кода на WordPress, предпримем следующее:

1. Подключимся к сайту по FTP.

2. Откроем файл functions.php в папке вашей темы (/wp-content/themes/) и в самый верх, сразу после <?php, вставим:

function minify_html($buffer) {

	$buffer = preg_replace(
		[
			'/\>[^\S ]+/s',
			'/[^\S ]+\</s',
			'/(\s)+/s',
			'/<!--(?![^<]*noindex)(.*?)-->/'
		], [
			'>',
			'<',
			'\\1',
			''
		], $buffer
	);

	return $buffer;

}

if(!is_admin() && !is_feed()) {

	ob_start('minify_html');

}

Сохраняем изменения и отправляем файл обратно на сайт.

Теперь, если вы посмотрите исходный код вашего сайта, то увидите принцип работы минификации.

Рекомендуем к просмотру
Минификация (сжатие) JS- и CSS-файлов на PHP
Модули и скрипты
Минификация (сжатие) исходного кода (HTML) в DLE на PHP
Хаки
Минификация (сжатие) исходного кода (HTML) в 1C-Bitrix на PHP
Хаки
6
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 2
    1
      •  Пользователь
    7 дек в 13:50

    Типично русская дурная привычка, парсить HTML регулярками... https://stackoverflow.com/a/1732454/1992004

    • 4
    2
      •  Пользователь
    27 мар в 01:40

    на DLE как сделать?

      • 1
      1067
        •  Команда Pandoge
      31 мар в 18:54

      Hate Mate, здравствуйте!

      https://www.pandoge.com/haki/minifikaciya-szhatie-ishodnogo-koda-html-v-dle-na-php

    • 2
    1
      •  Пользователь
    1 апр в 10:14

    Да, код отлично работает. Но есть большое но!

    Если у вас на странице имеется код вида:

    //<![CDATA[

    Тут код

    //]]>

    То он перестанет работать.

    Вопрос, можно ли сделать правило, чтобы то что внутри //<![CDATA[ ... //]]> не выстраивалось в одну строку?

    • 3
    766
      •  Гости
    19 июн в 15:44

    О спасибо за хак. PageSpeed Insights до этого показывал 70/100 для мобильных и 88/100 для компьютеров, сейчас 71 и 89 соответственно. Мало, но приятно.

    Скажите пожалуйста, а для сss и js подобных кодов нет?

      • 16
      1067
        •  Команда Pandoge
      19 июн в 18:59

      Miko, есть и для js\css. Сегодня - завтра запишу статью. smiley

Подняться наверх
«Pandoge» - помощник вебмастера