Hallo,
we gebruiken WP Media Folder -plug-in v4.2.6.
Toen we vandaag op zoek gingen naar de reden voor een crash van onze productiewebsite, kwamen we de volgende regels PHP-code tegen in 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);
}
}
}
return $tree;
}
Het gerapporteerde foutbericht in het toepassingslogboek was:
PHP Waarschuwing: array_merge(): Argument #2 is geen array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php op regel 1310
PHP Fatale fout: Niet-afgevangen TypeError: Argument 1 doorgegeven aan Wp_Media_Folder:
arent_sort() moet van het type array zijn, null is opgegeven, aangeroepen in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php op regel 470 en gedefinieerd in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php:1327
Nadat de eerste regel van de bovenstaande functie was gewijzigd in "if ($limit > 1500)", werkte de website weer.
Kunt u uitleggen wat de reden is achter de limiet van 1000 recursieve aanroepen en hoe deze zo goed mogelijk kan worden vermeden of verhoogd (bijvoorbeeld zonder aanpassingen rechtstreeks in de plugincode)?
Met vriendelijke groet,
vipteam
we gebruiken WP Media Folder -plug-in v4.2.6.
Toen we vandaag op zoek gingen naar de reden voor een crash van onze productiewebsite, kwamen we de volgende regels PHP-code tegen in 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);
}
}
}
return $tree;
}
Het gerapporteerde foutbericht in het toepassingslogboek was:
PHP Waarschuwing: array_merge(): Argument #2 is geen array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php op regel 1310
PHP Fatale fout: Niet-afgevangen TypeError: Argument 1 doorgegeven aan Wp_Media_Folder:
Nadat de eerste regel van de bovenstaande functie was gewijzigd in "if ($limit > 1500)", werkte de website weer.
Kunt u uitleggen wat de reden is achter de limiet van 1000 recursieve aanroepen en hoe deze zo goed mogelijk kan worden vermeden of verhoogd (bijvoorbeeld zonder aanpassingen rechtstreeks in de plugincode)?
Met vriendelijke groet,
vipteam
- Bladzijde :
- 1
Er zijn nog geen antwoorden op dit bericht.
