Я уже писал о том, как удалить «последствия» работы WordPress-плагина «Yoast WordPress SEO» из HTML кода страницы. Большой минус этого метода в том, что нужно лезть в исходный код плагина каждый раз при его обновлении.
И вот, когда этот самый Yoast WordPress SEO в очередной раз обновился, меня совсем заломало лезть править исходники, и был придуман несколько иной способ.
Новый метод заключается в том, что мы в файле шаблона темы будем удалять все комментарии из HEAD-части страницы. Так как ЙОАСТ плагин показывает свой мусор именно в комментариях, то мы в итоге приберём и за ним.
Итак. Открываем файл functions.php текущей темы, и дописываем в конец файла:
add_action('get_header', 'before_header', 0); add_action('wp_head', 'after_header', 900); function before_header (){ ob_start(); } function after_header() { $cont = ob_get_contents(); ob_end_clean(); echo preg_replace('#[\n\r\s]*<!--.*?-->[\n\r\s]*#', "", $cont); }
Здесь мы перехватываем весь вывод секции HEAD в буфер. Затем ищем там однострочные комментарии <!— —>, удаляем их и выводим очищенный HEAD.
Правда, этот костылеобразный способ работает не везде. Для его работы нужно, чтобы в php.ini было выставлено output_buffering = off. Кроме того, многие плагины похожим образом буферизуют вывод, и могут повлиять на наш код. Плюс, данный код благополучно скушает условные комментарии для IE, вида «<!—[if условие]> невидимый HTML-код <![endif]—>». За этим нужно следить тоже.
7 комментариев к "Убираем мусор из HEAD в WordPress."