Hola,
usamos WP Media Folder v4.2.6.
Al investigar el motivo del fallo de nuestro sitio web de producción hoy, encontramos las siguientes líneas de código PHP en 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($datos, $datos[$i]->term_id, $profundidad + 1, $límite++);
$árbol = array_merge($árbol, $t);
}
}
}
return $árbol;
}
El mensaje de error reportado en el registro de la aplicación fue:
Advertencia de PHP: array_merge(): el argumento n.º 2 no es un array en /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php en la línea 1310
Error fatal de PHP: Error de tipo no detectado: el argumento 1 pasado a Wp_Media_Folder:
arent_sort() debe ser del tipo array, se dio null, se llamó en /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php en la línea 470 y se definió en /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php:1327
Después de cambiar la primera línea de la función anterior a "if ($limit > 1500)", el sitio web comenzó a funcionar nuevamente.
¿Podrías explicar el motivo del límite de 1000 llamadas recursivas y cómo se puede evitar o aumentar de la mejor manera posible (por ejemplo, sin realizar cambios personalizados directamente en el código del plugin)?
Saludos,
vipteam
usamos WP Media Folder v4.2.6.
Al investigar el motivo del fallo de nuestro sitio web de producción hoy, encontramos las siguientes líneas de código PHP en 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($datos, $datos[$i]->term_id, $profundidad + 1, $límite++);
$árbol = array_merge($árbol, $t);
}
}
}
return $árbol;
}
El mensaje de error reportado en el registro de la aplicación fue:
Advertencia de PHP: array_merge(): el argumento n.º 2 no es un array en /var/www/html/wp-content/plugins/wp-media-folder/class/class-media-folder.php en la línea 1310
Error fatal de PHP: Error de tipo no detectado: el argumento 1 pasado a Wp_Media_Folder:
Después de cambiar la primera línea de la función anterior a "if ($limit > 1500)", el sitio web comenzó a funcionar nuevamente.
¿Podrías explicar el motivo del límite de 1000 llamadas recursivas y cómo se puede evitar o aumentar de la mejor manera posible (por ejemplo, sin realizar cambios personalizados directamente en el código del plugin)?
Saludos,
vipteam
- Página :
- 1
Aún no se han realizado respuestas para esta publicación.
