Ошибки в теме после установки (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.522
    Симпатии:
    1.375
    Хм, очень странная ошибка, такое впечатление что некий код уже побезобразничал над глобальной переменной $_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.522
    Симпатии:
    1.375
    Ага, понятненько!
    Найдите в теме все упоминания 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.522
    Симпатии:
    1.375
    это тоже надо заменить
     
  8. souz21

    souz21 Постоялец

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


     
  9. Китjp

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

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

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