Pular para o conteúdo principal
  Quinta-feira, 7 de setembro de 2017
  1 Respostas
  2 mil visitas
  Se inscrever
Olá,

estamos usando WP Media Folder v4.2.6.

Pesquisando o motivo da falha do nosso site de produção hoje, nos deparamos com as seguintes linhas de código PHP em 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);
}
}
}
retornar $tree;
}

A mensagem de erro relatada no log do aplicativo foi:

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::p 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

Depois de alterar a primeira linha da função acima para "if ($limit > 1500)", o site começou a funcionar novamente.

Você poderia explicar o motivo do limite de 1.000 chamadas recursivas e como ele pode ser evitado ou aumentado da melhor maneira possível (por exemplo, sem alterações personalizadas diretamente no código do plugin)?

Atenciosamente,
vipteam
A
8 anos atrás
Olá,

obrigado por nos contatar aqui sobre esta extensão.
Sinto muito, mas este fórum é apenas para perguntas de pré-venda. Para todas as solicitações técnicas, envie-nos um ticket (menu Suporte > Suporte de tickets).
Nosso desenvolvedor responsável dará uma olhada nisso.

Cumprimentos,
  • Página :
  • 1
Ainda não há respostas para esta postagem.