Programar um post do WordPress com antecedência é simples. Você termina a edição, marca uma data e depois fica livre para se concentrar em outras coisas. O problema é que o WordPress às vezes não consegue publicar as mensagens agendadas, o que pode estragar o seu calendário editorial.

A funcionalidade subjacente que torna possível agendar mensagens no WordPress é chamada de “cron” e, por vezes, não funciona como esperado. No entanto, existem duas maneiras de evitar que este problema aconteça no futuro.

Neste artigo, vamos mostrar-lhe como é o erro de agendamento perdido e aprofundar o porquê de ele acontecer. Em seguida, discutiremos duas maneiras de resolver o problema, para que o seu site nunca mais o desiluda quando você agendar uma publicação. Vamos a isso!

O que é o erro de agendamento perdido do WordPress

Quando você encerra uma nova publicação no WordPress, você tem várias opções sobre o que fazer a seguir. Você pode salvá-lo como um rascunho, publicá-lo imediatamente e, é claro, programá-lo para uma data posterior.

Normalmente, todo o processo decorre sem problemas. A data chega e o WordPress verifica se existem lançamentos a serem publicados. Se houver, vai em frente e torna-os públicos. Enquanto isso, você pode relaxar e se concentrar em outros aspectos da execução do seu site e negócio.

No entanto, às vezes o WordPress perde totalmente a data de publicação que você definiu. Quando isso acontecer, você verá um erro como esse se verificar sua guia Posts:

Erro de WordPress Missed Schedule Error
Erro de WordPress Missed Schedule Error

Você sempre pode acessar essas postagens de problemas e publicá-las manualmente. No entanto, o WordPress não informa quando há um erro de publicação agendado. Isso significa que se você quiser evitar soluços, você precisará verificar duas vezes para ver se suas mensagens passaram pelos momentos que você definiu, o que anula todo o propósito de programá-las com antecedência.

Por Que Acontece o Erro de Agendamento Perdido do WordPress

O WordPress usa trabalhos do cron para agendar tarefas que ele precisa executar em horários específicos. Nos sistemas baseados em UNIX, estes “crons” são também referidos como “schedulers” e têm uma variedade de utilizações. Por exemplo, você pode usar um cron para executar um comando ou um script, ou – como no WordPress – para publicar uma mensagem.

O problema com os crons do WordPress é que eles não são “crons reais” no verdadeiro sentido da palavra. Como muitos hosts web não fornecem aos usuários acesso às configurações do servidor, isso significa que você não pode configurar seus crons para rodar no nível do sistema. O WordPress contorna essa limitação usando crons simulados. Em vez de executá-los em um intervalo definido, o WordPress conta com visitas de usuários para acionar esses crons falsos.

Em outras palavras, cada vez que um usuário visita seu site, o Content Management System (CMS) verifica se há algum trabalho pendente no cron que ele precisa executar. Esta é uma solução inteligente, mas também tem uma desvantagem evidente – se o seu site não receber nenhuma visita no momento certo, então o CMS não irá publicar as suas mensagens como pretendido. É quando o erro de horário falhado vai levantar a sua cabeça feia.

Mesmo que o seu site receba um fluxo constante de visitantes, isso não significa que você esteja 100% seguro do erro de agendamento perdido do WordPress. Se o seu site cair temporariamente, por exemplo, ou se você usar um plugin de cache, ainda há uma chance de que seus crons do WordPress não funcionem como planejado.

Como Corrigir o Erro de Agendamento Perdido do WordPress (2 Métodos)

No que diz respeito aos erros do WordPress, este é bastante fácil de corrigir. Nas seções seguintes, vamos explorar dois métodos que você pode usar para evitar mensagens perdidas, um envolvendo um plugin e o outro confiando no seu servidor.

1. Usar o Plugin de pós-disparo programado

Idealmente, o WordPress deveria verificar periodicamente para ver se ele perdeu alguma data de publicação e cuidar delas para você. Infelizmente, essa não é uma característica que o CMS inclui fora da caixa. No entanto, é o tipo de funcionalidade que você pode facilmente adicionar usando o plugin certo, e é aí que entra o Scheduled Post Trigger:

Plugin de Scheduled posts trigger
Plugin de Scheduled posts trigger

A forma como este plugin funciona é que cada vez que alguém visita o seu site, ele verifica se o WordPress perdeu qualquer data de publicação agendada ultimamente. Se encontrar quaisquer instâncias do erro de agenda perdida, ele pega essas postagens e as publica imediatamente.

Em outras palavras, o plugin funciona adicionando um cron job que verifica o seu site em busca de trabalhos perdidos no cron. Esta abordagem pode parecer um pouco redundante, mas funciona. Além disso, o plugin não requer nenhuma configuração especial, e começará a fazer seu trabalho automaticamente assim que você o instalar e ativar.

2. Gerenciar Cron Jobs Diretamente Através do Seu Servidor

Se o seu plano de hosting não lhe dá acesso às definições do seu servidor, então pode configurar as tarefas do cron para correr nesse nível. Para que essa abordagem funcione, no entanto, você precisará desativar os crons do WordPress primeiro para evitar conflitos.

Para isso, acesse seu site via FTP usando um cliente como o FileZilla. Navegue até sua pasta raiz e procure o arquivo wp-config.php dentro dela:

Arquivo wp-config.php
Arquivo wp-config.php

Clique com o botão direito do mouse no arquivo e selecione a opção Exibir/Editar. Agora, adicione a seguinte linha de código antes do fim do arquivo:

define('DISABLE_WP_CRON', true);

Salve as alterações no seu arquivo wp-config.php e pronto para o primeiro passo. Em seguida, você precisará implementar crons manuais através do seu servidor, o que a maioria dos provedores permite que você faça usando seu painel de controle de hospedagem.

Por exemplo, se você tem acesso ao cPanel, deve haver uma opção chamada Cron Jobs sob uma de suas abas:

Cron jobs via cPanel
Cron jobs via cPanel

Usando esta ferramenta, você pode facilmente agendar novos trabalhos do cron para serem executados em intervalos. Como regra geral, qualquer intervalo mais freqüente que cinco minutos é um exagero, e um cron job rodando nesses horários irá sobrecarregar seu servidor desnecessariamente.

Tenha em mente, no entanto – embora seu host web possa ajudá-lo a agendar crons no nível do servidor, você ainda precisará definir quais tarefas executar manualmente. Isso envolve escrever comandos UNIX, o que significa que você precisará revisar esses comandos se quiser configurar seus crons manualmente.

Outra alternativa é usar um provedor de hospedagem web que cuida de crons para você.

Aqui no Kinsta, nós configuramos suas tarefas do cron do WordPress para rodar em um nível de sistema com intervalos de 15 minutos. Na grande maioria dos casos, intervalos de 15 minutos farão com que o trabalho seja feito. No entanto, no caso de você precisar dele, você sempre pode entrar em contato com o suporte e solicitar que baixemos o intervalo para cinco minutos.

Resumo

O agendamento de posts é um recurso fundamental para a maioria dos usuários do WordPress. Esta funcionalidade simples faz com que não tenha de definir lembretes para publicar mensagens manualmente. Em vez disso, o WordPress cuida dele para você, ou pelo menos deveria. Se o cron job associado não disparar corretamente, no entanto, então seu post pode não ver a luz do dia até que você mesmo o publique.

Existem duas formas de corrigir o erro de agenda perdida do WordPress. Você pode:

  1. Use o plugin Scheduled Post Trigger.
  2. Gerencie trabalhos cron diretamente através do seu servidor.