Поддержка Проблемы и решения Сайт отдает 500 ошибку после правки functions.php

  • Добрый день.
    На данном сайте в конец functions.php добавляю код(код рабочий, много раз им пользовался):

    add_action( 'template_redirect', function(){
    	ob_start( function( $buffer ){
    		$buffer = str_replace( array( 'type="text/javascript"', "type='text/javascript'" ), '', $buffer );
    		$buffer = str_replace( array( 'type="text/css"', "type='text/css'" ), '', $buffer );
    		return $buffer;
    	});
    });

    И после этого сайт отдает 500 ошибку, вообще не открывается. Перегружаю исходный functions.php — работает.
    В папке inc с темой есть папка redux, возможно какие-то вещи делаются с помощью этого js фрэймворка, а он не может работать без атрибута type=’text/javascript’.
    Или в чем еще может быть проблема?

    • Тема изменена 1 месяц, 3 недели назад пользователем simatic007.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • 
    // удаляем все type у скриптов и стилей для соответствия html5 begin
    function ost_theme_output_buffer_start() { 
        ob_start('ost_theme_output_callback'); 
    }
    add_action('wp_loaded', 'ost_theme_output_buffer_start');
    function ost_theme_output_buffer_end() { 
        ob_end_flush(); 
    }
    add_action('shutdown', 'ost_theme_output_buffer_end');
    function ost_theme_output_callback($buffer) {
        return preg_replace("%[ ]type=[\'\"]text\/(javascript|css)[\'\"]%", '', $buffer);
    }
    // удаляем все type у скриптов и стилей для соответствия html5 end
    

    Все равно ложится, наверно как-то криво сама тема сделана.

    попробуйте добавить этот код не в конце.
    а еще не помешает посмотреть лог ошибок error_log на предмет, что именно вызывает ошибку.

    Доступа к панели управления хостингом нет.
    Пробовал ставить в начало и середину functions.php — результат такой же.

    • Ответ изменён 1 месяц, 3 недели назад пользователем simatic007.
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    удаляем все type у скриптов и стилей для соответствия html5

    В WordPress 5.3 это уже не понадобится:

    HTML5 Supports Argument for Script and Style Tags

    In HTML5, the type attribute is not required for the <script> and <style> tags. Including the attribute on these tags (type="text/javascript", for example) will trigger a validation warning in HTML validation tools.

    In WordPress 5.3, two new arguments are now supported for the html5 theme feature, script and style. When these arguments are passed, the type attribute will not be output for those tags.

    Example

    
    <?php
    function mytheme_register_support() {
        add_theme_support( 'html5', array( 'script', 'style' ) );
    }
    add_action( 'after_setup_theme', 'mytheme_register_support' );
    

    For more information on this change, see #42804 on Trac.

    «Miscellaneous Developer Focused Changes in 5.3» [make.wordpress.org]

Просмотр 5 ответов — с 1 по 5 (всего 5)