Recentemente, um de nossos leitores perguntou se era possível visualizar e controlar o sistema de cron jobs do WordPress no painel. Em nossa experiência, esta é uma pergunta que muitos usuários do WordPress têm, especialmente à medida que se familiarizam com o funcionamento interno do WordPress.
Se você não está familiarizado, Cron é uma tecnologia para executar tarefas agendadas em um servidor web. O WordPress vem com seu próprio cron integrado que permite realizar tarefas agendadas, como verificar atualizações, publicar posts agendados, etc.
Neste artigo, mostraremos como visualizar e controlar os cron jobs do WordPress.

O que é o Cron do WordPress? Como Funciona?
Cron é um termo técnico usado para comandos que são executados em um horário agendado ou em intervalos regulares. A maioria dos servidores web o utiliza para manter o servidor e executar tarefas agendadas.
O WordPress vem com seu próprio sistema de cron, que permite realizar tarefas agendadas. Por exemplo, verificar atualizações, excluir comentários antigos da lixeira, publicar posts agendados, e assim por diante.
Plugins do WordPress também podem usá-lo para executar tarefas especificadas por você. Por exemplo, seu plugin de backup do WordPress pode usar o cron do WordPress para criar backups automaticamente em um agendamento definido.
No entanto, o uso irresponsável do cron do WordPress por plugins pode deixar seu site lento. Especialmente se você estiver em hospedagem compartilhada.
Se um plugin executa tarefas que consomem muitos recursos com frequência, você precisa identificar o problema e corrigi-lo.
Vamos ver como visualizar e controlar o sistema cron do WordPress sem escrever nenhum código.
Visualizar e Controlar o Sistema Cron do WordPress
A primeira coisa que você precisa fazer é instalar e ativar o plugin WP Crontrol. Para mais detalhes, veja nosso guia passo a passo sobre como instalar um plugin do WordPress.
Após a ativação, você precisa visitar a página Ferramentas » Eventos Cron para controlar as configurações do cron.

Você verá uma lista de todos os eventos cron agendados para serem executados em seu site usando o sistema cron do WordPress.
Na primeira coluna, você verá o nome do hook que executa o cron.
Nomes de hooks geralmente dão uma pista sobre o que este evento em particular faz.
A maioria dos hooks padrão do WordPress começa com o prefixo wp_, como wp_update_plugins, wp_update_themes, etc.
Seus plugins do WordPress podem ou não usar seus próprios prefixos para seus hooks. Por exemplo, All in One SEO usa o prefixo aioseo_.
Você também verá quando um cron será executado a seguir e o intervalo de tempo entre as próximas execuções.
A última coluna da lista permite que você edite, exclua ou execute um evento cron.
Importante: Tenha muito cuidado com o que você faz com os eventos cron e nunca exclua um evento cron padrão do WordPress.
Agora, vamos supor que você veja um evento cron criado por um plugin do WordPress que consome muitos recursos.
Primeiro, você deve verificar as configurações do plugin para ver se há uma opção para controlá-lo a partir daí. Se não houver, você pode clicar no link 'Editar' ao lado do evento cron para alterá-lo.

Clicar no botão Editar abrirá a aba 'Modificar Evento Cron' abaixo.
Aqui, você pode alterar a frequência com que deseja que o evento seja executado.

Quando terminar, clique no botão 'Modificar Evento Cron' para salvar suas configurações.
Adicionando Seus Próprios Eventos Cron no WordPress
O plugin WP Crontrol facilita a adição de suas próprias tarefas cron ao WordPress. Simplesmente visite a página Ferramentas » Eventos Cron e role para baixo até a aba 'Adicionar Evento Cron'.

Primeiro, você precisa fornecer um nome de hook para o seu evento cron. Nomes de hook não podem ter espaços ou caracteres especiais.
Se a função que você deseja executar requer argumentos, então você pode fornecer esses argumentos.
Em seguida, você precisa dizer ao WordPress quando executar o cron da próxima vez. Você pode inserir 'now' (agora), que acionará o cron imediatamente, 'tomorrow' (amanhã), '+2 days' (daqui a 2 dias), ou '25-02-2020 12:34:00'.
Por último, você precisa selecionar uma programação. Você pode selecionar horária, duas vezes ao dia, diária ou uma vez por semana. Você também pode torná-lo um evento não recorrente.
Quando terminar, clique no botão 'Adicionar Evento Cron' para salvar suas alterações.
Você notará que seu evento cron agora aparecerá na lista de eventos.
No entanto, atualmente ele não faz nada porque você não disse ao WordPress o que fazer quando este evento for acionado.
Você precisará adicionar seu hook e uma função que é executada quando o hook cron é acionado.
add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
Não se esqueça de usar seu próprio endereço de e-mail.
Esta função simplesmente envia um e-mail de teste para você quando o cron é executado. Agora você pode rolar a página para cima e clicar no link 'Executar Agora' ao lado do seu evento cron para testá-lo.
Nota: O uso de cron requer habilidades intermediárias de programação e desenvolvimento WordPress. Se você não possui essas habilidades, recomendamos contratar um desenvolvedor WordPress.
É isso, esperamos que este artigo tenha ajudado você a aprender como visualizar e controlar os cron jobs do WordPress. Você também pode querer ver nosso guia sobre como instalar vários plugins favoritos do WordPress em massa ou nossas escolhas de especialistas dos melhores plugins de segurança do WordPress.
Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Mrteesurez
Muito obrigado por apresentar este tópico e nos ajudar a entender melhor os cron jobs do WordPress. Sua explicação detalhada esclareceu realmente como eles funcionam e como gerenciá-los de forma eficaz. Agradeço as ideias que você compartilhou; é empoderador ter esse conhecimento para manter nossos sites funcionando sem problemas. Obrigado novamente por seu valioso artigo!
Paul Barrett
Executamos o cron no nível do servidor porque o wp-cron sobrecarrega o servidor. Não há nada em nosso site que seja tão crítico em termos de tempo que os trabalhos precisem ser executados com frequência. Se definirmos a frequência como diária, o WordPress teria um problema?
WPBeginner Support
Dependeria muito do que está sendo feito no site e quando. Não temos uma recomendação específica para o que pode ser adiado a esse ponto.
Admin
Matt K
Quando vou alterar a recorrência nos Hooks, eles simplesmente voltam a ser alterados. Algo não está certo. Preciso desativar os crons do WP no wp-config.php primeiro?
WPBeginner Support
Dependeria do cron job específico, se você entrar em contato com o suporte do plugin, eles devem ser capazes de ajudar
Admin
Heinz
Posso desativar ou até mesmo excluir o plugin WP Control depois de ter configurado um cron job, para que eu não tenha muitos plugins rodando e diminuindo a velocidade do site?
WPBeginner Support
Sim, desde que você tenha usado uma das programações padrão (como diária). Se você adicionou uma programação personalizada, qualquer evento que a utilize será executado mais uma vez, mas não se repetirá depois disso.
O plugin não deve causar uma lentidão em seu site. Para um melhor entendimento de como os plugins do WordPress afetam seu site, você pode querer dar uma olhada em nosso artigo aqui:
https://014.leahstevensyj.workers.dev/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Admin
Andre Hesdahl
Sou um novato no WordPress e não sei onde colocar (ou como executar) o código:
add_action( ‘wpb_custom_cron’, ‘wpb_custom_cron_func’ );
function wpb_custom_cron_func() { wp_mail( ‘you@example.com’, ‘Email automático’, ‘Email agendado automaticamente do WordPress para testar o cron’); }
Jeff
Obrigado pelo artigo. Interessante ver o número de plugins que têm jobs cron rodando com frequência. Ótimo vislumbre interno do plugin…
David
Como posso configurar o cron para a cada meia hora?
hazel beaver
Quando verifico a agenda do cron, as datas mostradas na coluna ‘próxima execução’ estão todas no passado. Isso significa que elas não estão rodando?
No passado, acho que adicionei ‘true’ no arquivo wp config para impedir que as atualizações automáticas do wp quebrassem meu site…. isso poderia ser a causa?
Janson
Isso funciona em Multi-site? É possível controlar os crons para todas as instâncias em um cenário multisite?
Oleg
Ótimo artigo, mas não há necessidade de
if ( ! wp_next_scheduled( ‘wpb_custom_cron’ ) ) { wp_schedule_event( time(), ‘hourly’, ‘my_task_hook’ ); }
esta parte é feita no plugin,
beny salim
como posso adicionar Recorrência como cinco minutos, dez minutos
Ahmad Sayeed
Testei o exemplo que você deu. Funciona como um super-homem. Mas por favor, nos dê um exemplo para enviar parâmetros. Adicionei a função ao criar o evento. Mas não sei como usá-los na função PHP.
Por favor, nos dê um exemplo
Ensolarado
Meu site está exibindo uma longa string de wp cron após meu URL e não consigo me livrar dela. Alguma ideia?
?doing_wp_cron=1499261576.8675799369812011718750 aparece após meu URL e isso me faz parecer muito spam. Sua opinião seria apreciada.
Aniket Ashtikar
Esse hook cron ‘my_task_hook’ está corretamente mencionado na linha 2 ou deveria ser alterado para ‘wpb_custom_cron’?
Matt
Você sabe se é possível visitar um link na área do wp-admin? Tenho um plugin que adiciona recursos administrativos ao meu site WordPress, mas eu realmente quero que isso seja agendado para acontecer a cada 24 horas. Eu tenho o link, mas obviamente preciso estar logado.
Pam M
Você precisa dessa primeira instrução if mostrada no código de exemplo? Parece que ela substituiria a capacidade de agendar e desprogramar no plugin WP Crontrol.
Seu exemplo funcionou bem quando agendei o trabalho no plugin e o testei com a opção Executar agora. Verei se recebo um e-mail no horário agendado também.
Obrigado pelas informações de fundo úteis.
Nigam
Olá
Quando atualizo a página de Eventos WP-Cron no admin do WordPress, o evento só é executado.