Перейти до основного змісту
  Четвер, 7 вересня 2017 р.
  1 Відповіді
  2 тисячі відвідувань
  Підпишіться
Привіт,

ми використовуємо плагін WP Media Folder

Досліджуючи причину збою нашого продакшн-сайту сьогодні, ми натрапили на такі рядки PHP-коду в class-media-folder.php:

public function generatePageTree($datas, $parent = 0, $depth = 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]->depth = $depth;
$tree[] = $datas[$i];
$t = $this->generatePageTree($datas, $datas[$i]->term_id, $depth + 1, $limit++);
$tree = array_merge($tree, $t);
}
}
}
повернути $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, null given, 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
На цю публікацію ще немає відповідей.