wordpress cron

Agendamento Perdido no WordPress! Como resolver?

Uma das funções do WordPress que mais facilita nossas vidas é o agendamento de posts. Com ele podemos criar nossas publicações e agendá-las para irem ao ar em um horário que seja mais conveniente para nosso público alvo. Dessa forma nossos posts podem ser publicados até enquanto estamos dormindo!

Nas primeiras vezes é comum você ficar “vigiando” se o post vai ser publicado mesmo e tudo vai sair nos conformes, mas depois de 2 ou 3 publicações com sucesso você começa a ficar mais tranquilo e deixa de verificar minuto-a-minuto se o post está o ar.

Aqui é que mora o perigo, vez ou outra a instalação do WordPress apresenta o famoso bug do Agendamento Perdido (Schedule Missed). Você prepara suas publicações, agenda e quando vai ver…

agendamento perdido no wordpress

A partir deste momento nenhum outro agendamento em seu site funciona!

Esse bug do WordPress não tem situação especial para acontecer nem versão específica, ele pode tanto aparecer após uma atualização de versão como também pode aparecer da noite pro dia no seu site que estava perfeito até ontem.

Na internet existem diversas “soluções” para o problema. As 2 mais tentadas na comunidade são as seguinte:

Substituição do arquivo wp-cron.php

Dizia-se que a substituição do arquivo pelo da versão 2.6.5 faria com que os agendamentos voltassem a ser respeitados. Alguns usuários dizem que este método funciona.

Alteração no wp-config.php

Uma outra alternativa muito tentada é a inclusão da linha

 define('ALTERNATE_WP_CRON', true);

direto em seu arquivo de configuração do WordPress. Assim como na primeira alternativa, alguns usuários dizem ter sucesso com isso e outros não.

A solução final

Eu mesmo já passei por esse problema duas vezes no mesmo site. Tentei ambas as possibilidades acima dentre outras como configuração de CRON direto no servidor e etc mas nada resolveu o problema… exceto nosso amigo sLa, desenvolvedor do plugin WP Missed Schedule.

O plugin é bem simples e não requer nenhuma configuração por parte do usuário, basta ativá-lo e já está funcionando. Após ativado ele verifica minuto-a-minuto se há algum post em seu site com o status de agendamento perdido, caso haja ele se encarrega de forçar – e efetivamente – fazer a publicação.

Aos que se preocupam com o consumo do servidor podem ficar tranquilos, pois a cada minuto o plugin pega 5 posts da sua lista e faz a verificação, logo não há sobrecarga.

E uma dica final a respeito do plugin é que ao ativá-lo ele vai publicar todos os posts antigos que já estão com o agendamento perdido, não só os futuros posts.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

12 Comentários

  1. É, o calcanhar de Aquiles do WP é justamente o Cron. A maneira que ele lida com o Cron, por tentar ser compatível com todos os servidores, é horrível.

    Atualmente, tudo que vc faz no site dispara o Cron. Além das programações normais que ele faz no Cron (para checar plugins, por exemplo), a CADA INTERAÇÃO com a página, seja feita pelo administrador ou pelo visitante, ele dispara o Cron.

    Ou seja: cada vez que vc muda de página no painel adm, ele dispara. Cada vez que alguém visita outra página do seu site, ele dispara.

    Solucionamos isso na empresa onde trabalhava personalizando o acesso ao Cron, uma vez que nosso servidor permitia o acesso ao mesmo.

    Nunca entendi pq o WP não tem a opção de desligar esse acesso constante ao Cron.

    1. Sim, o Cron hoje é uma das coisas que precisam urgente de uma revisão no WordPress. Existem desenvolvedores que optam por não o utilizarem e usam alternativas via funções ou até mesmo com agendamento de tarefas no cron do servidor.

      O problema é que alguns servidores cobram por tarefa agendada e no geral não é todo mundo que conhece bem o WordPress a ponto de se aventurar a customizar ou tentar alternativas para o cron.

  2. Tô aqui depois de um bom tempo rs pra perguntar o seguinte: essa solução traz de volta o agendamento, mas ele não funciona mais no compartilhamento automático via plugin, como o do Jetpack.

    Sabe de alguma solução que não só traga o agendamento de volta como permita que ele volte a funcionar nos compartilhamentos?