WordPress Nível: intermediário

WP-Cron

WP-Cron é o sistema interno do WordPress para agendar tarefas automáticas, como publicação programada, verificação de atualizações e limpeza de banco de dados.

WP-Cron é o mecanismo que o WordPress usa para executar tarefas agendadas. Publicações programadas, verificações automáticas de atualizações de plugins, envio de e-mails e limpeza de dados temporários dependem do WP-Cron para funcionar.

O funcionamento é diferente de um cron Unix real. O WP-Cron não roda em intervalos fixos do servidor. Ele é acionado por visitas ao site: toda vez que alguém acessa uma página, o WordPress verifica se há tarefas agendadas com hora vencida e as executa na mesma requisição.

O problema de sites com pouco tráfego

Essa dependência de visitas cria um problema claro: se o site fica horas sem visitas, as tarefas agendadas simplesmente não rodam. Uma publicação programada para as 8h pode não ir ao ar até que alguém acesse o site.

A solução é desativar o WP-Cron nativo e configurar um cron real no servidor para chamar wp-cron.php em intervalos fixos. Essa é uma prática recomendada para sites em produção, especialmente os que dependem de tarefas agendadas para funcionar corretamente.

Como funciona na prática

  • A cada requisição ao site, o WordPress consulta a lista de tarefas agendadas
  • Tarefas com horário vencido são executadas em paralelo à requisição do usuário
  • Plugins podem registrar tarefas recorrentes usando `wp_schedule_event()`
  • O intervalo mínimo nativo é de um minuto, mas depende de visitas para disparar
  • Em servidores com WP-Cron desabilitado, um cron job externo chama o endpoint periodicamente

Exemplo Prático

Um site de notícias agenda 20 posts para publicar entre 6h e 9h da manhã. Se o WP-Cron estiver configurado corretamente com um cron real no servidor, os posts são publicados nos horários exatos. Sem isso, ficam presos como rascunhos até a primeira visita.

Por que isso é importante?

WP-Cron importa porque qualquer site WordPress que use agendamento de conteúdo, backups automáticos ou envio de e-mails depende dele. Entender suas limitações evita problemas silenciosos que só aparecem quando algo não foi executado no tempo certo.

Perguntas Frequentes (FAQ) sobre WP-Cron

Como verificar se o WP-Cron está funcionando?

O plugin WP Crontrol mostra todas as tarefas agendadas, seus intervalos e quando foram executadas pela última vez. É a forma mais direta de auditar o sistema de agendamento.

Como configurar um cron real para substituir o WP-Cron?

Adicione `define('DISABLE_WP_CRON', true);` no wp-config.php e configure um cron job no servidor para acessar `https://seusite.com/wp-cron.php?doing_wp_cron` a cada 5 ou 10 minutos.