O WordPress inclui um sistema de agendamento integrado conhecido como WP-Cron, que é responsável pelo gerenciamento de tarefas agendadas, como a publicação de posts em um horário específico, o envio de e-mails acionados ou a execução de backups automatizados.
Embora o WP-Cron seja conveniente e funcione bem para muitos sites, ele tem limitações. Um problema comum é que às vezes ele perde tarefas agendadas, especialmente em sites com pouco tráfego.
Uma alternativa mais confiável é configurar trabalhos cron adequados gerenciados pelo servidor do seu provedor de hospedagem na Web. Esses trabalhos do cron são independentes das visitas ao site e são executados em uma programação precisa, garantindo que as tarefas sejam executadas de forma consistente e pontual.
Na WPBeginner, contamos com trabalhos cron adequados configurados diretamente em nosso servidor para garantir que todas as nossas tarefas agendadas sejam executadas no prazo, e essa abordagem tem proporcionado excelentes resultados de forma consistente para nós. Isso significa que não precisamos nos preocupar com atrasos ou tarefas perdidas, mesmo durante períodos de baixo tráfego ou alta atividade do servidor.
Neste artigo, mostraremos como desativar facilmente o wp-cron no WordPress e abordaremos duas maneiras de configurar trabalhos cron adequados.
Por que desativar o wp-cron?
Seu site WordPress tem um sistema de agendamento interno chamado wp-cron. Ele executa tarefas sensíveis ao tempo, como verificação de atualizações, publicação de posts programados, criação automática de backups regulares, envio de e-mails acionados e muito mais.
Você pode saber mais em nosso guia sobre como visualizar e controlar os trabalhos cron do WordPress.
O problema é que o WordPress só é solicitado a verificar se há trabalhos agendados quando alguém visita seu site. Isso funciona bem para a maioria dos sites, mas às vezes pode causar problemas para sites menores.
Por exemplo, se seu site tiver pouco tráfego, as postagens programadas poderão não ser publicadas a tempo. Se o site receber muito tráfego, o wp-cron será verificado com frequência, o que pode afetar o desempenho do site.
Agora, se você quiser apenas corrigir o erro de posts agendados ausentes, poderá usar o plugin gratuito Missed Scheduled Publisher. Mas se você quiser resolver todos os problemas de ações agendadas, precisará de um trabalho cron real.
Um trabalho cron real é executado pelo sistema operacional do seu servidor de hospedagem na Web, não pelo WordPress. Você pode configurá-lo para verificar as tarefas agendadas de forma mais confiável. Por padrão, o WordPress não tem acesso para configurar isso no nível do servidor, mas você pode fazer isso facilmente seguindo nosso tutorial.
Dito isso, vamos dar uma olhada em como desativar facilmente o wp-cron e configurar um trabalho cron adequado. Veja o que abordaremos neste tutorial:
Desativando o wp-cron no WordPress
Para desativar o wp-cron, você precisa editar o wp-config.php, que é um arquivo de configuração central do WordPress. Ele está localizado na pasta raiz do seu site WordPress e você precisará usar um cliente FTP ou o gerenciador de arquivos no painel de controle da sua hospedagem na Web.
Esse arquivo contém muitas informações confidenciais, e fazer as alterações erradas pode danificar seu site WordPress. Recomendamos fazer um backup do arquivo primeiro, por precaução. Você pode saber como fazer isso seguindo nosso guia sobre como editar o wp-config.php no WordPress.
Você precisará colar o seguinte código no arquivo wp-config.php, logo antes da linha que diz: “That’s all, stop editing! Feliz blog”:
define('DISABLE_WP_CRON', true);
É assim que deve ser.
Depois disso, salve o arquivo e carregue-o novamente em seu site.
O WordPress não acionará mais o wp-cron quando alguém visitar seu site.
Método 1: Configurar um trabalho Cron adequado em seu host do WordPress
Agora, você precisará configurar um trabalho cron adequado para executar suas tarefas agendadas. A maneira de fazer isso varia de acordo com as ferramentas fornecidas pelo seu provedor de hospedagem WordPress.
A maneira mais fácil de configurar tarefas cron é usar o cPanel, um painel de controle de site popular incluído em muitos planos de hospedagem na Web, incluindo a Bluehost. Neste tutorial, usaremos o cPanel da Bluehost.
Observação: alguns hosts da Web não usam o cPanel e alguns podem nem mesmo permitir que você crie tarefas cron. Em caso de dúvida, entre em contato com o provedor de hospedagem ou consulte a documentação de suporte. Você sempre pode usar um serviço cron de terceiros (verifique o método 2).
Depois de fazer login na sua conta de hospedagem e acessar a página “Websites”, vá para a guia “Advanced” (Avançado) na parte superior.
Aqui, role para baixo até a seção “Cron Jobs” e clique no botão “Manage” (Gerenciar) ao lado dela. Lembre-se de que a posição dessa seção pode variar dependendo do seu provedor de hospedagem.
Isso o levará a uma nova página na qual você poderá criar novos trabalhos cron.
Não se preocupe com o aviso que você verá sobre a necessidade de um bom conhecimento dos comandos do Linux. Apenas um comando é necessário, e mostraremos a você exatamente qual é ele a seguir.
Se necessário, você pode alterar o endereço de e-mail para o qual as notificações de trabalho do cron serão enviadas. O endereço padrão é aquele que você usou quando se inscreveu para a hospedagem na Web, e isso funcionará bem na maioria dos sites.
Agora, vamos rolar para baixo até a seção “Add New Cron Job” e configurar um cron job.
Primeiro, você precisa decidir com que frequência o cron job será executado. Pode ser o que você quiser, mas recomendamos intervalos de 30 minutos.
Você precisará clicar no botão “Common Settings” (Configurações comuns) e selecionar um intervalo de tempo no menu suspenso. Duas vezes por hora” é uma boa opção para a maioria dos sites, caso não tenha certeza.
Agora, você pode inserir o comando que solicitará ao WordPress que execute suas tarefas agendadas. Você precisa colar o seguinte código no campo “Command” (Comando):
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Certifique-se de substituir “example.com” pelo URL de seu próprio site.
Depois de fazer isso, clique no botão “Add New Cron Job” e você verá o novo cron job adicionado à lista abaixo.
O WordPress agora verificará e executará tarefas agendadas a cada 30 minutos, em vez de quando alguém visitar seu site.
Método 2: configurar um trabalho Cron adequado usando um serviço de terceiros
Se o seu plano de hospedagem não oferecer cron jobs adequados ou se eles forem difíceis de configurar, você poderá usar um serviço de cron de terceiros.
Esses são serviços dedicados que permitem que você configure tarefas cron usando uma interface simples. Aqui estão alguns dos melhores:
- O EasyCron tem um plano gratuito que requer renovação mensal
- Ocron-job.org é um serviço gratuito
- O Cronitor é gratuito se você precisar apenas de um trabalho cron
- O SetCronJob oferece planos pagos a partir de US$ 10/ano
Para este tutorial, usaremos o EasyCron porque ele é fácil de usar e o plano gratuito é adequado para a maioria dos casos de uso de iniciantes.
Depois de criar uma conta gratuita, você pode criar um novo cron job clicando no botão “+ Cron Job” à esquerda.
Isso abrirá a tela “Create Cron Job”. Primeiro, você precisa colar o seguinte URL no campo “URL to call”:
https://example.com/wp-cron.php?doing_wp_cron
Certifique-se de substituir “example.com” pelo URL de seu próprio site.
Depois disso, você deve escolher “Every 30 minutes” (A cada 30 minutos) no menu suspenso “When to execute” (Quando executar). Quando terminar, não se esqueça de clicar no botão “Create Cron Job” para armazenar suas configurações.
O novo trabalho cron será adicionado à lista e executará o wp-cron em seu site a cada 30 minutos.
Bônus: Auto-Schedule Your WordPress Blog Posts
Depois de configurar os trabalhos cron adequados, todas as suas tarefas agendadas no blog do WordPress serão executadas sem problemas. Você pode até mesmo programar automaticamente as postagens do seu blog.
Isso permitirá que você escolha um artigo para publicar aleatoriamente na data de publicação pré-selecionada. Para fazer isso, você deve instalar e ativar o plug-in PublishPress Planner.
Após a ativação, visite a página Planner ” Settings e alterne para a guia “Content Calendar” na parte superior. Aqui, marque a caixa “Scheduled” (Programado) ao lado da opção “Statuses to display publish time” (Status para exibir o horário de publicação).
Depois disso, você deve escolher um formato de hora para a publicação do post e clicar no campo ao lado da opção “Hora de publicação padrão para itens criados no calendário”.
Isso abrirá um prompt no qual você poderá escolher o horário, a hora e o minuto específicos para a publicação diária das postagens programadas. Para obter ideias, consulte nosso tutorial sobre qual é o melhor horário para publicar um blog.
Em seguida, clique no botão “Save Changes” (Salvar alterações) para armazenar suas configurações.
Agora você pode ir para o editor de blocos, onde pode selecionar a opção “Scheduled” (Programado) no menu suspenso “Post Status” (Status da publicação).
Para obter mais informações, consulte nosso tutorial sobre como programar automaticamente as postagens do seu blog no WordPress.
Esperamos que este tutorial tenha ajudado você a aprender como desativar o wp-cron no WordPress e a configurar os trabalhos cron adequados. Talvez você também queira ver nosso tutorial sobre como adicionar um usuário administrador no WordPress com FTP e nosso guia para iniciantes sobre como visualizar e controlar os trabalhos do cron.
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.
Beth Alexander
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support
To check a cron job, we would recommend taking a look at our article below!
https://www.wpbeginner.com/plugins/how-to-view-and-control-wordpress-cron-jobs/
Administrador
Anita Richards
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support
Unless we hear otherwise, the ?doing_wp_cron allows for some background processing that without would not be able to do.
Administrador
Anita Richards
Ok, that makes some sense. I guess that it must be the difference between the WP and Woo processes being run?
I ended up creating two corn jobs in cPanel one with and one without. Is that going to cause problems?
WPBeginner Support
It should be a slightly different method to achieve the same result.
It would depend on your site’s size for how multiple cron jobs would affect your hosting site, as your site becomes larger it may become an issue