Para quem trabalha com gerenciamento de websites e webservers, a ideia de tarefas agendadas é comum ou no mínimo familiar. As cron jobs compõem uma tecnologia responsável por executar tarefas agendadas em um servidor. Assim, o WordPress como um CMS não poderia deixar de utilizá-las.
No WP o sistema de cron jobs é utilizado para diferentes objetivos, os mais comuns são verificar atualizações de temas, atualização de plugins e do próprio WordPress, bem como de publicar post agendados. As utilidades são várias e o post de hoje é voltado a usuários mais avançados ou para aqueles que queiram saber um pouco mais sobre WordPress Cron Jobs.
WordPress Cron Jobs
Cron Jobs?
Cron ou cron job é um termo técnico em inglês, utilizado para se referir a tarefas e execuções agendadas que devem acontecer em datas ou intervalos de tempo determinados. Hoje, todos os servidores – inclusive o servidor que hospeda o seu site, utiliza essa tecnologia para realizar manutenções, backups, dentre outras funções.
O WordPress traz consigo seu próprio sistema cron para realização de tarefas agendadas. Como citei no início desse post, as tarefas nativas e mais comuns são atualizações, exclusão de comentários antigos e diversas outras definições que o usuário pode configurar em seu Painel Administrativo.
Como Funciona Com os Plugins
Talvez você já tenha percebido com o tempo que já manuseia e trabalha com plugins no WordPress, que muitos deles tem a possibilidade de configurar e agendar tarefas. Elas podem ser especificadas por você ou acontecerem por padrão no plugin.
Um bom exemplo para que fique claro do que estamos falando, são os plugins para execução de backups. Em sua maioria, eles oferecem a possibilidade de agendar backups semanais, mensais, de 15 em 15 dias, etc. Pois é, estas tarefas agendas são as nossas WordPress cron jobs.
Você sabia que o uso irresponsável e demasiado do WordPress cron pode afetar a performance do seu site, deixando-o mais lento? Principalmente se você utilizada hospedagem compartilhada – que é um tipo de hospedagem de sites mais utilizada pelos iniciantes.
Se um ou mais plugins estiverem rodando tarefas de forma intensiva, torna-se necessário que você identifique o problema e corrija-o logo,
Normalmente a verificação de tarefas agendadas são realizadas por intermédio de código via acesso SSH, mas vou te mostrar como você pode verificar e controlar WordPress cron jobs diretamente em sua Dashboard.
Controlando Sistema WordPress Cron
WP Control
O plugin WP Control permite visualizar, editar e criar tarefas agendadas dentro do WordPress. Muito simples, essa ferramenta traz consigo um painel muito intuitivo para a visualização de crons existentes e suas informações de período para execução.
Através do WP Control podemos criar nossas próprias tarefas agendas, utilizando hooks personalizados ou já existentes em nosso sistema e plugins. Além de permitir também, a criação de Cron PHP.
Para quem gerencia sistemas WordPress e tem certa familiaridade com Cron Jobs, o WP Control – utilizado por mais de 40 mil usuários em todo o mundo, pode ser uma excelente ferramenta para auxiliar o trabalho.
Visualizando Sistema Cron do WordPress
Em sua Dashboard, após a instalação e ativação do WP Control, busque e acesse Ferramentas > Cron Events.
Ao entrar na página de eventos cron jobs, você verá uma lista de tarefas agendadas e os detalhes de quando serão executadas. Todas elas estão utilizando o sistema WordPress cron.
Na primeira coluna à esquerda, você tem os hooks que executa cada tarefa agendada. Geralmente os hooks tem nomes que sugerem aquilo que eles fazem. Por exemplo, wp_version_check – esse é o hook nativo do sistema WordPress, que verifica a versão do seu CMS.
Por padrão, os hooks do WordPress iniciam com “wp_”. Esse padrão para prefixos é essencial para a nossa leitura e entendimento. Pois podemos distinguir hooks do sistema e de plugins.
Na coluna Next Run você tem a informação sobre a próxima execução de uma cron job.
E logo depois, na coluna Recurrence vemos o intervalo ou período de recorrência daquela cron job (tarefa agendada).
Na última coluna temos a opção de Editar, Executar ou Deletar uma cron.
Obs: Nunca, jamais exclua uma cron padrão do sistema WordPress. Muito cuidado com qualquer cron que deseje excluir ou editar, mas principalmente com aquelas que são próprias do WP.
Ainda na lista de eventos cron que o plugin WP Control exibe, digamos que você percebeu que um plugin está utilizando cron jobs em intervalos muito curtos e que são desnecessários, o que torna o uso intensivo um fator negativo na performance do site. Caso o plugin permita configurar o agendamento de tarefas diretamente em suas configurações, ótimo! Você não precisa modificá-lo pelo WP Control.
Se o plugin não dá essa opção de controle em sua própria página de configurações, você pode clicar em Editar no WP Control e modificar tanto argumentos, quanto períodos e intervalos para a execução da cron job daquele plugin. Tudo dentro da aba Modify Cron Event que aparecerá no final da página.
Após configurar sua cron, clique no botão Modify Cron Event para salvar.
Adicione seu próprio Cron Events
Além de permitir editar e executar cron jobs de plugins existentes em seu WordPress, o plugin WP Control torna fácil a criação de suas próprias tarefas agendadas. Basta estar em Ferramentas > Cron Events e rolar a página até encontrar a aba Add Cron Event.
Comece adicionando um nome hook para a sua cron job. Lembrando que não deve haver espaços e nem caracteres especiais.
Se a função que você quer agendar para executar, necessita de argumentos, você pode inseri-los em Arguments.
O próximo passo é dizer ao sistema Cron WordPress, quando será a próxima execução da sua tarefa. Você deve digitar Data e Hora em Next Run.
Em Recurrence você vai configurar o período em que sua tarefa agendada deve sempre repetir, ou seja, ser executada. Escolha A cada hora, 2 vez por dia (12 em 12 horas), 1 vez por dia ou 1 vez por semana.
Clique em Add Cron Event para adicionar sua cron e salvar as configurações.
Nós criamos uma cron job própria e personalizada, mas não dissemos o que ela deve fazer ao seu executada. Para fazer isso, você deve acessar o arquivo functions.php do seu tema ou trabalhar com mu-plugins e escrever o código que dirá o que aquele hook personalizado irá fazer.
Para um simples exemplo, vamos criar uma função que enviará um e-mail de teste que você possa ver o evento personalizado que acabou de criar, sendo executado. Copie e cole o código abaixo em seu functions.php alterando a informação de e-mail para aquele que você usa.
if ( ! wp_next_scheduled( 'cwp_cron_personalizada' ) ) { wp_schedule_event( time(), 'hourly', 'my_task_hook' ); } add_action( 'cwp_cron_personalizada', 'cwp_cron_personalizada_func' ); function cwp_cron_personalizada_func() { wp_mail( 'seuemail@email.com', 'Email Automatico', 'Email Automatico para testar WordPress Cron'); }
Perceba que em add_action nós passamos a nossa hook personalizada e criada no WP Control e o nome da função que estamos criando com o código para envio do e-mail – cwp_cron_personalizada_func.
Salve o arquivo functions.php. Voltando ao painel do WP Control e clicando na opção Run Now referente ao hook que criamos anteriormente, o código que acabamos de adicionar será executado. Então, aquilo para o qual o criamos – enviar um e-mail teste, será enviado.
Conclusão
A utilização de cron jobs ou tarefas agendadas é excelente para executar ações que devem se repetir em nosso site e servidor. Como vimos, as mais comuns dentro do WordPress e de seus plugins é a verificação de atualizações, realização de backups, etc.
Utilizar cron e o sistema Cron do WordPress exige um nível de conhecimento e programação elevados, pois a manipulação incorreta pode acarretar em mal funcionamento das funções básicas e na lentidão do sistema.
Então, recomendo o plugin WP Control e uso de cron jobs para quem trabalha com desenvolvimento e gerenciamento de sites WP. Onde a realização de tarefas de segurança e funções específicas do site são necessárias.
Se você gostou desse artigo considere compartilhar nas redes sociais. Siga-nos nas redes sociais para acompanhar mais artigos como esse. Se de alguma forma este artigo lhe foi útil deixa seu comentário abaixo para podermos saber a sua opinião.
Ferramentas WordPress Veja Mais Ferramentas
Hostinger
Regenerate Thumbnail
Q2W3 Fixed Widget
Estou tentando configurar o cron para atualizar diariamente o sitemaps automaticamente do site anunce.com mas não sei qual comando usar. Pode me orientar?