Карты сайта WordPress с <a i=0 translate="no">WP Meta SEO</a>
  Четверг, 7 сентября 2017 г.
  1 Ответы
  2 тыс. посещений
  Подписаться
Привет,

мы используем WP Media Folder v4.2.6.

Исследуя причину сбоя нашего рабочего сайта сегодня, мы наткнулись на следующие строки PHP-кода в class-media-folder.php:

public function generatePageTree($datas, $parent = 0, $dynamic = 0, $limit = 0) {
if ($limit > 1000)
return '';
$tree = array();
for ($i = 0, $ni = count($datas); $i < $ni; $i++) {
if (!empty($datas[$i])) {
if ($datas[$i]->parent == $parent) {
$datas[$i]->name = $datas[$i]->name;
$datas[$i]->dynamic = $dynamic;
$tree[] = $datas[$i];
$t = $this->generatePageTree($datas, $datas[$i]->term_id, $dynamic_times + 1, $limit++);
$tree = array_merge($tree, $t);
}
}
}
return $tree;
}

Сообщение об ошибке в журнале приложения было следующим:

PHP Warning: array_merge(): Argument #2 is not an array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php on line 1310
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Wp_Media_Folder::п arent_sort() must be of the type array, given null, called in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php on line 470 and defined in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php:1327

После изменения первой строки функции выше на «if ($limit > 1500)» веб-сайт снова заработал.

Не могли бы вы объяснить, почему существует ограничение в 1000 рекурсивных вызовов и как его можно обойти или увеличить наилучшим образом (например, без внесения изменений непосредственно в код плагина)?

С уважением,
vipteam
А
8 лет назад
Привет!

Спасибо, что обратились к нам по поводу этого расширения.
Извините, но этот форум предназначен только для вопросов перед продажей. По всем техническим вопросам, пожалуйста, напишите нам заявку (меню «Поддержка» > «Поддержка билетов»).
Наш ответственный разработчик посмотрит на это.

С уважением,
  • Страница :
  • 1
На этот пост пока нет ответов.