Recentemente, um de nossos leitores perguntou se era possível visualizar e controlar o sistema de tarefas cron do WordPress no painel. Em nossa experiência, essa é uma pergunta que muitos usuários do WordPress têm, especialmente quando se familiarizam mais com o funcionamento do WordPress nos bastidores.
Se você não estiver familiarizado, o Cron é uma tecnologia para executar tarefas agendadas no servidor da Web. O WordPress vem com seu próprio cron integrado que permite executar tarefas agendadas, como verificação de atualizações, publicação de posts agendados etc.
Neste artigo, mostraremos como visualizar e controlar os trabalhos cron do WordPress.
O que é o WordPress Cron? Como ele funciona?
Cron é um termo técnico usado para comandos a serem executados em horários programados ou em intervalos regulares. A maioria dos servidores da Web o utiliza para manter o servidor e executar tarefas agendadas.
O WordPress vem com seu próprio sistema cron, que permite a execução de tarefas programadas. Por exemplo, a verificação de atualizações, a exclusão de comentários antigos da lixeira, a publicação de posts programados e assim por diante.
Os plug-ins 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 determinado horário.
No entanto, o uso irresponsável do cron do WordPress por plugins pode tornar seu site mais lento. Especialmente se você estiver usando hospedagem compartilhada.
Se um plug-in executa frequentemente tarefas que consomem muitos recursos, você precisa identificar o problema e corrigi-lo.
Vamos dar uma olhada em 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 plug-in WP Crontrol. Para obter mais detalhes, consulte nosso guia passo a passo sobre como instalar um plug-in do WordPress.
Após a ativação, você precisa visitar a página Tools ” Cron Events para controlar as configurações do cron.
Você verá uma lista de todos os eventos cron programados para serem executados em seu site usando o sistema cron do WordPress.
Na primeira coluna, você verá o nome do gancho que executa o cron.
Os nomes dos ganchos geralmente dão uma dica do que esse evento específico faz.
A maioria dos hooks padrão do WordPress começa com um prefixo wp_, como wp_update_plugins, wp_update_themes etc.
Seus plug-ins do WordPress podem ou não usar seus próprios prefixos para seus hooks. Por exemplo, o All in One SEO usa o prefixo aioseo_
.
Você também poderá ver quando um cron será executado em seguida 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 plug-in do WordPress que consome muitos recursos.
Primeiro, você deve verificar as configurações do plug-in 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 Edit (Editar) abrirá a guia “Modify Cron Event” (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 “Modify Cron Event” para armazenar suas configurações.
Como adicionar seus próprios eventos Cron no WordPress
O plug-in WP Crontrol facilita a adição de seus próprios cron jobs ao WordPress. Basta acessar a página Tools ” Cron Events e rolar para baixo até a guia “Add Cron Event”.
Primeiro, você precisa fornecer um nome de gancho para o evento cron. Os nomes dos hooks não podem ter espaços ou caracteres especiais.
Se a função que você deseja executar requer argumentos, você pode fornecer esses argumentos.
Em seguida, você precisa informar ao WordPress quando executar o cron na próxima vez. Você pode inserir “now” (agora), que acionará o cron imediatamente, “tomorrow” (amanhã), “+2 days” (dois dias) ou “25-02-2020 12:34:00”.
Por fim, você precisa selecionar um cronograma. Você pode selecionar de hora em hora, duas vezes ao dia, diariamente ou uma vez por semana. Você também pode fazer com que o evento não se repita.
Quando terminar, clique no botão “Add Cron Event” para salvar suas alterações.
Você perceberá que o evento cron aparecerá na lista de eventos.
No entanto, atualmente ele não faz nada porque você não disse ao WordPress o que fazer quando esse evento for acionado.
Você precisará adicionar seu gancho e uma função que seja executada quando o gancho do cron for 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.
Essa 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 “Run Now” (Executar agora) ao lado do seu evento cron para testá-lo.
Observação: o uso do cron requer habilidades de programação de nível intermediário e de desenvolvimento do WordPress. Se você não tiver essas habilidades, recomendamos contratar um desenvolvedor do WordPress.
Esperamos que este artigo tenha ajudado você a aprender como visualizar e controlar os cron jobs do WordPress. Talvez você também queira ver nosso guia sobre como instalar em massa seus plug-ins favoritos do WordPress ou nossas escolhas de especialistas dos melhores plug-ins de segurança do WordPress.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Paul Barrett
We run cron at server level because wp-cron overloads teh server. There’s is nothing on our site that is so time-critical the jobs need to running frequently. If we set the frequency to say daily, would WordPress have a problem?
WPBeginner Support
It would heavily depend on what is being done on the site and when. We do not have a specific recommendation for what can be delayed to that extent.
Administrador
Matt K
When I go to change the the recurrence on the Hooks, they just get changed back. Something isn’t right. Do I need to disable WP crons in wp-config.php first?
WPBeginner Support
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Administrador
Heinz
Can I deactivate or even delete WP Control plugin in after having set a cron job, so I don’t have too many plugins running and slow down the website?
WPBeginner Support
Yes, as long as you’ve used one of the default schedules (such as daily). If you’ve added a custom schedule any event that uses it will run once more but won’t repeat after that.
The plugin should not cause a slowdown of your site, for a better understanding of how WordPress plugins affect your site you may want to take a look at our article here:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Administrador
Andre Hesdahl
I am a newbee with WordPress and don’t know where to put (or how to execute) the code:
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’);
}
Jeff
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David
How can i configure the cron to every half hour?
hazel beaver
When I check the cron schedule the dates shown in the ‘next run’ column are all in the past. Does that mean they are not running?
In the past I think I added ‘true’ in the wp config file to stop automatic wp updates from breaking my site…. could this be the cause?
Janson
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg
Great article, but no need for
if ( ! wp_next_scheduled( ‘wpb_custom_cron’ ) ) {
wp_schedule_event( time(), ‘hourly’, ‘my_task_hook’ );
}
this part is done in the plugin,
beny salim
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed
I tested you given example. It works like a superman. But please give us an example to send parameter. I have added the function while creating the even. But I don’t know how to use them on PHP function.
Please give us an example
Sunny
My website is coming up with a long wp cron string after my URL and I cant get rid of it. Any thoughts?
?doing_wp_cron=1499261576.8675799369812011718750 comes up after my url and its making me look really spammy. Your insight would be appreciated.
Aniket Ashtikar
Is that ‘my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to ‘wpb_custom_cron’?
Matt
Do you know if its possible to visit a link in the wp-admin area? I have a plugin that adds admin features to my wordpress site but I really want this scheduled to happen every 24 hours. I have the link but obviously am required to be logged in.
Pam M
Do you need that first if statement shown in the sample code? It looks like it would override the ability to schedule and unschedule in the WP Crontrol plugin.
Your example worked nicely when I scheduled the job in the plugin and tested it with the Run Now option. I’ll see if I get an email at the scheduled time too.
Thanks for the helpful background info.
Nigam
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.