Salut,
folosim pluginul WP Media Folder
Cercetând motivul blocării site-ului nostru web de producție astăzi, am dat peste următoarele linii de cod php în 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);` `} } } returnează `$tree`;` `$datas->$datas[$i]->term_id, $depth + 1, $limit++``;
$tree = array_merge($tree, $t);
} }
}
returnează `$tree``;
`` }
Mesajul de eroare raportat în jurnalul aplicației a fost:
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
După schimbarea primei linii a funcției de mai sus la „if ($limit > 1500)”, site-ul web a început să funcționeze din nou.
Ați putea să explicați, vă rog, care este motivul din spatele limitei de 1000 de apeluri recursive și cum poate fi evitată sau crescută în cel mai bun mod posibil (de exemplu, fără modificări personalizate direct în codul pluginului)?
Cu stimă,
vipteam
folosim pluginul WP Media Folder
Cercetând motivul blocării site-ului nostru web de producție astăzi, am dat peste următoarele linii de cod php în 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);` `} } } returnează `$tree`;` `$datas->$datas[$i]->term_id, $depth + 1, $limit++``;
$tree = array_merge($tree, $t);
} }
}
returnează `$tree``;
`` }
Mesajul de eroare raportat în jurnalul aplicației a fost:
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:
După schimbarea primei linii a funcției de mai sus la „if ($limit > 1500)”, site-ul web a început să funcționeze din nou.
Ați putea să explicați, vă rog, care este motivul din spatele limitei de 1000 de apeluri recursive și cum poate fi evitată sau crescută în cel mai bun mod posibil (de exemplu, fără modificări personalizate direct în codul pluginului)?
Cu stimă,
vipteam
- Pagina:
- 1
Nu există încă răspunsuri pentru această postare.
