Erro: Maximum execution time exceeded — Tempo limite de execução
Causa
O PHP tem um limite padrão de 30 segundos para execução de scripts. Operações pesadas em page load, como importar CSVs ou processar imagens em lote, excedem esse limite.
Como resolver
Para tarefas longas, use o sistema de filas do WordPress (WP Cron + Action Scheduler). Se imprescindível aumentar o tempo, use set_time_limit() com cautela apenas em scripts CLI.
PHP
<?php
// ❌ ERRADO — processa tudo de uma vez em um request HTTP
function importar_csv_errado(string $arquivo): void {
$linhas = file($arquivo); // pode ter 100k linhas
foreach ($linhas as $linha) {
// processar cada linha...
wp_insert_post([/* ... */]);
}
}
// ✅ CORRETO — processa em lotes usando WP Cron
function importar_csv_em_lotes(string $arquivo): void {
$linhas = file($arquivo);
$total = count($linhas);
$lote_size = 50;
for ($i = 0; $i < $total; $i += $lote_size) {
$lote = array_slice($linhas, $i, $lote_size);
// Agenda processamento do lote
as_schedule_single_action(
time() + ($i / $lote_size) * 5, // a cada 5s
'processar_lote_csv',
['lote' => $lote, 'offset' => $i]
);
}
}
// ✅ Para WP-CLI onde faz sentido aumentar o limite
if (defined('WP_CLI') && WP_CLI) {
set_time_limit(0);
// processar em lote...
}