Поддержка Проблемы и решения Ошибка substr() expects parameter 1 to be string, array given in

  • Я новичёк в WordPress. До этого работал с ModX и Drupal.
    Возникла необходимость адаптации шаблона под WP. Повозившись с регистрацией стилей и скриптов заставил страницу работать. Но, теперь выдаёт вот такую ошибку.
    Warning: substr() expects parameter 1 to be string, array given in …\wp-includes\functions.php on line 1709

    Вот кусок кода из Functions.php на который указывает ошибка:

    function wp_normalize_path( $path ) {
    	$path = str_replace( '\\', '/', $path );
    	$path = preg_replace( '|(?<=.)/+|', '/', $path );
    	if ( ':' === ( $path, 1, 1 ) ) {
    		$path = ucfirst( $path );
    	}
    	return $path;substr
    }

    1709 строка вот эта:

    if ( ':' === substr( $path, 1, 1 ) ) {
    		$path = ucfirst( $path );
    	}

    Судя по тому что не срабатывает слайдер. Проблема кроется, скорее всего, где-то в нём.
    Но где искать не стыковку, не могу понять. Подскажите пожалуйста куда копать.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yuri

    (@yube)

    А что передается в $path, какое значение и какого типа? Судя по предупреждению, там массив.

    Да в том то и дело что я не пойму. У меня слайдер работает на js и css. Ни там ни там функция $path не задействуется. Или возможно я чего то не вижу.

    Модератор Yuri

    (@yube)

    У меня слайдер работает на js и css.

    Тогда к чему этот php код?

    Ни там ни там функция $path не задействуется.

    $path не функция, а переменная.

    Пардон переменная. Дело в том что ошибка высвечивается с указанием на эту функцию. И при этом единственное что не корректно работает — это слайдер. Буду копать дальше, по результатам отпишусь. Возможно где то напортачил с регистрацией выводом скриптов и стилей.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Повозившись с регистрацией стилей и скриптов заставил страницу работать. Но, теперь выдаёт вот такую ошибку.

    Стоило привести код регистрации стилей и скриптов. Код функции wp_normalize_path() и так у всех есть 🙂

    Вот код регистрации:

    <?php
    
    //styles
    
     function vms_menu_style_load() {
     $theme_uri = get_template_directory_uri();
     wp_register_style('vms_menu_style', $theme_uri.'/css/menu-reset.css', array(), '2');
     wp_enqueue_style('vms_menu_style'); 
    }
    add_action('wp_enqueue_scripts', 'vms_menu_style_load');
    
     function vms_style_load() {
     $theme_uri = get_template_directory_uri();
     wp_register_style('vms_style', $theme_uri.'/css/main-red.css', array(), '2' );
     wp_enqueue_style('vms_style'); 
    }
    add_action('wp_enqueue_scripts', 'vms_style_load');
    
    function bootstrap_load() {
     $theme_uri = get_template_directory_uri();
     wp_register_style('bootstrap', $theme_uri.'/css/bootstrap.min.css', array(), '2');
     wp_enqueue_style('bootstrap'); 
    }
    add_action('wp_enqueue_scripts', 'bootstrap_load');
    
    function icomoon_load() {
     $theme_uri = get_template_directory_uri();
     wp_register_style('icomoon', $theme_uri.'/css/icomoon-social.css', array(), '2' );
     wp_enqueue_style('icomoon'); 
    }
    add_action('wp_enqueue_scripts', 'icomoon_load');
    
    function leaflet_load() {
     $theme_uri = get_template_directory_uri();
     wp_register_style('leaflet', $theme_uri.'/css/leaflet.css', array(), '2' );
     wp_enqueue_style('leaflet'); 
    }
    add_action('wp_enqueue_scripts', 'leaflet_load');
    
    function google_load() {
    wp_register_style('google_styles', plugins_url('http://fonts.googleapis.com/css?family=Open+Sans:400,700,600,800', array(), '2'));
    wp_enqueue_style('google_styles');
    }
    add_action( 'wp_enqueue_scripts', 'google_load' );
    
    //scripts
    
    function adding_modernizr_scripts() {
    wp_register_script('modernizr_script', get_template_directory_uri() . '/js/modernizr.js', array() );
    wp_enqueue_script('modernizr_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_modernizr_scripts' );
    
    function adding_jquery_scripts() {
    wp_register_script('jquery_script', get_template_directory_uri() . '/js/jquery-2.1.1.js', array(), in_footer);
    wp_enqueue_script('jquery_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_jquery_scripts' );
    
    function adding_main_scripts() {
    wp_register_script('main_script', get_template_directory_uri() . '/js/main.js', array(), in_footer);
    wp_enqueue_script('main_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_main_scripts' );
    
    function adding_bootstrapmin_scripts() {
    wp_register_script('bootstrapmin_script', get_template_directory_uri() . '/js/bootstrap.min.js', array(), in_footer);
    wp_enqueue_script('bootstrapmin_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_bootstrapmin_scripts' );
    
    function adding_leafletjs_scripts() {
    wp_register_script('leafletjs_script', plugins_url('http://cdn.leafletjs.com/leaflet-0.5.1/leaflet.js', array(), '2', 'all', in_footer));
    wp_enqueue_script('leafletjs_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_leafletjs_scripts' );
    
    function adding_fitvids_scripts() {
    wp_register_script('fitvids_script', get_template_directory_uri() . '/js/jquery.fitvids.js', array(), in_footer);
    wp_enqueue_script('fitvids_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_fitvids_scripts' );
    
    function adding_sequence_scripts() {
    wp_register_script('sequence_script', get_template_directory_uri() . '/js/jquery.sequence-min.js.js', array(), in_footer);
    wp_enqueue_script('sequence_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_sequence_scripts' );
    
    function adding_bxslider_scripts() {
    wp_register_script('bxslider_script', get_template_directory_uri() . '/js/jquery.bxslider.js', array(), in_footer);
    wp_enqueue_script('bxslider_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_bxslider_scripts' );
    
    function adding_template_scripts() {
    wp_register_script('template_script', get_template_directory_uri() . '/js/template.js', array(), in_footer);
    wp_enqueue_script('template_script');
    }
    add_action( 'wp_enqueue_scripts', 'adding_template_scripts' );
    ?>

    У меня вопрос. Если я нигде не вызывал фукцию wp_normalize_path(), то где она срабатывает по умолчанию? Можете мне подсказать??

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Ошибка substr() expects parameter 1 to be string, array given in» закрыта для новых ответов.