Hallo,
wir verwenden WP Media Folder Plugin in Version 4.2.6.
Bei der Fehlersuche nach einem Absturz unserer Live-Website heute sind wir auf folgende PHP-Codezeilen in der Datei class-media-folder.php gestoßen:
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;
Die Fehlermeldung im Anwendungsprotokoll lautete:
PHP -Warnung: array_merge(): Argument #2 ist kein Array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php in Zeile 1310.
Schwerwiegender PHP-Fehler: Unbehandelter TypeError: Argument 1 wurde an Wp_Media_Folder übergeben:
array_sort() muss vom Typ Array sein, null wurde übergeben, aufgerufen in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php in Zeile 470 und definiert in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php:1327.
Nachdem die erste Zeile der obigen Funktion in "if ($limit > 1500)" geändert wurde, funktionierte die Website wieder.
Könnten Sie bitte erläutern, warum die Anzahl der rekursiven Aufrufe auf 1000 begrenzt ist und wie diese Begrenzung am besten umgangen oder erhöht werden kann (z. B. ohne direkte Änderungen am Plugin-Code)?
Mit freundlichen Grüßen,
vipteam
wir verwenden WP Media Folder Plugin in Version 4.2.6.
Bei der Fehlersuche nach einem Absturz unserer Live-Website heute sind wir auf folgende PHP-Codezeilen in der Datei class-media-folder.php gestoßen:
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;
Die Fehlermeldung im Anwendungsprotokoll lautete:
PHP -Warnung: array_merge(): Argument #2 ist kein Array in /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php in Zeile 1310.
Schwerwiegender PHP-Fehler: Unbehandelter TypeError: Argument 1 wurde an Wp_Media_Folder übergeben:
Nachdem die erste Zeile der obigen Funktion in "if ($limit > 1500)" geändert wurde, funktionierte die Website wieder.
Könnten Sie bitte erläutern, warum die Anzahl der rekursiven Aufrufe auf 1000 begrenzt ist und wie diese Begrenzung am besten umgangen oder erhöht werden kann (z. B. ohne direkte Änderungen am Plugin-Code)?
Mit freundlichen Grüßen,
vipteam
- Seite :
- 1
Für diesen Beitrag wurden noch keine Antworten abgegeben.
