Ошибки в теме после установки (Warning)

Тема в разделе "Wordpress", создана пользователем souz21, 5 сен 2015.

Модераторы: DzSoft, Sorcus
  1. souz21

    souz21 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    121
    Симпатии:
    12
    Установил тему строго по инструкции.
    Прямо на сайте, при переходе в разделы возникают сразу несколько ошибок. Из-за них не работают некоторые функции темы. Кто соображает, посоветуйте как решить проблему.

    1. Warning: explode() expects parameter 2 to be string, array given in /home/сервер/домен.ru/wp-content/themes/cardealer/template-car-listing.php on line 40

    2. Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/сервер/домен.ru/wp-content/themes/cardealer/template-car-listing.php on line 41

    3. Warning: end() expects parameter 1 to be array, null given in /home/сервер/домен.ru/wp-content/themes/cardealer/template-car-listing.php on line 121

    4. Warning: explode() expects parameter 2 to be string, array given in /home/сервер/домен.ru/wp-content/plugins/tmm_shortcodes/views/cardealer/quicksearch.php on line 30

    5. Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/сервер/домен.ru/wp-content/plugins/tmm_shortcodes/views/cardealer/quicksearch.php on line 31

    Надо какие то параметры указать?

    Например по пунктам 1, 2, 3 такие строки в файле template-car-listing.php:
    PHP:
    39. if ( isset( $_GET['carlocation'] ) ) {
    40.    $carlocation explode','$_GET['carlocation'] );
    41.    $carlocation array_map'intval'$carlocation );
    42. }

    ....

    118.   if ( $carlocation[0] !== ) {
    119.    $meta_query_array[] = array(
    120.       'key'     => 'car_carlocation_' count$carlocation ),
    121.       'value'   => end$carlocation ),
    122.      'type'    => 'numeric',
    123.     'compare' => '='
    124.    );
    125.  }

    Пункты 4 и 5 в файле: quicksearch.php
    PHP:
    29.  if (isset($_GET['carlocation'])) {
    30.    $carlocation explode(','$_GET['carlocation']);
    31.    $carlocation array_map('intval'$carlocation);
    32. }
     
  2. souz21

    souz21 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    121
    Симпатии:
    12
    Могут такие ошибки возникнуть из-за версии WP? Например у меня 4.3, а тема была под 4.2?
     
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.548
    Симпатии:
    1.430
    Хм, очень странная ошибка, такое впечатление что некий код уже побезобразничал над глобальной переменной $_GET
    А покажите вывод
    PHP:
    var_dump($_GET['carlocation']);
    вставить перед 29 строкой.
    И посмотрите нет ли в файлах присвоения типа:
    PHP:
    $_GET['carlocation'] = ...
     
  4. souz21

    souz21 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    121
    Симпатии:
    12
    Ну вот живой пример. Там с фильтром наверно проблемы?

    Продавец в августе сделал обновление до WP 4.3. У меня версия темы июльская, под 4.2. Может стоит попробовать на 4.2 поставить? Вот ЗДЕСЬ случайно не об этом же пишут?
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.548
    Симпатии:
    1.430
    Ага, понятненько!
    Найдите в теме все упоминания name="carlocation[0]" и замените на name="carlocation"
     
  6. souz21

    souz21 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    121
    Симпатии:
    12
    Надо прямо во всех файлах искать, или в тех, которые указаны в ошибке (template-car-listing.php и quicksearch.php) ?
    Я нашел name="carlocation[0]" только в quicksearch.php и заменил.
    В template-car-listing.php есть только типа if ( $carlocation[0] !== 0 ) { строка 118
     
  7. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.548
    Симпатии:
    1.430
    это тоже надо заменить
     
  8. souz21

    souz21 Постоялец

    Регистр.:
    24 июл 2011
    Сообщения:
    121
    Симпатии:
    12
    Не получается у меня.
    Вот только в этих файлах есть что-то типа carlocation[0]
    Только они прописаны по-разному


     
  9. Китjp

    Китjp Писатель

    Регистр.:
    20 ноя 2013
    Сообщения:
    8
    Симпатии:
    0
    Кто то передаёт в элементе 'carlocation' массива $_GET массив. Для функции explode() второй параметр должен быть строкой. Оттуда и ошибка.

    Попробуй дописать [0] к переменной: $_GET['carlocation'][0]