Suporte » Ajustando o WordPress » Agendamento Perdido(SOLUÇÃO DEFINITIVA)

  • Resolvido patricknn

    (@patricknn)


    Para quem tem problemas com agendamento perdido, consegui uma solução definitiva que nao tem erro.

    Esse problema pode acontecer principalmente se você usa plugins de cache.

    Para resolver o problema, siga os passos abaixo:

    Abra o arquivo wp-includes/default-filters.php

    Procure pelas linhas abaixo e as comente

    //if(!defined('DOING_CRON'))
    //	add_action('init', 'wp_cron');

    Crie um arquivo chamado crontab.php com as linhas abaixo:

    <?php
    /** Setup WordPress environment **/
    require_once('../wp-load.php');
    
    /** Call to Run wp-cron **/
    if($_GET["somekey"] == "someEncrypedValue"){
    	wp_cron();
    }
    ?>

    a linha:
    $_GET["somekey"] == "someEncrypedValue"

    é para a sua segurança de outros nao executarem a sua cron sem sua autorização, mesmo que isso nao seja um problema
    altere o somekey e o someEncrypedValue por o que voce achar melhor

    Agora no Crontab da sua hospedagem você adiciona a linha para executar o seu arquivo crontab.php todos os minutos

    /usr/bin/curl http://www.meusite.com.br/wp-includes/crontab.php?codigo=iniciocrontab0099

    substitui o somekey pelo codigo e someEncrypedValue por iniciocrontab0099

    nos campos de horario de execução do crontab coloque * em todos(minuto, hora, dia, mes e dia util).

    Feito isso você nao terá mais problemas com agendamento perdido

    Tirei essa dica daqui:
    http://wordpress.org/support/topic/wordpress-and-crontab?replies=7

Visualizando 11 respostas - 1 até 11 (de um total de 11)
  • @patricknn, porque não encontrei a referida linha no arquivo cron.php?

    Encontrei o seguinte na linha 200:

    if ( defined('DOING_CRON') || isset($_GET['doing_wp_cron']) )
    		return;

    Sou o mais novo felizardo a passar por esse erro imobilizante. Tenho um blog que é todo baseado em agendamento de posts diários num mesmo horário. Agora ele está inutilizável. Não tenho conhecimento suficiente, mas desconfio que diz respeito a alguma inadequação do código do WP com alguma configuração do cPanel, Apache ou PHP dos servidores. Ao pesquisar vejo que é um erro recorrente há anos e a equipe de desenvolvimento do WordPress ainda não conseguiu resolver.

    Leia meu post que fiz ontem, se quiser: http://br.forums.wordpress.org/topic/agendamento-perdido-um-bug-eterno?replies=1

    ialima, nao é no cron.php é no wp-includes/default-filters.php

    como escrevi acima.

    Huuuuuuuum, desculpe!!! É que já olhei tantas ‘soluções’ que já estou até confuso, rs. Vou tentar.

    Valeu!

    @patricknn, fiquei sem entender, afinal, o que colocar no ‘somekey’ e no ‘someEncrypedValue’. Como essa questão de segurança não é mesmo necessária para um arquivo cron me diga, por favor, como ficaria o código sem essa parte.

    Thank you.

    Coloca só assim

    <?php
    /** Setup WordPress environment **/
    require_once('../wp-load.php');
    
    wp_cron();
    ?>

    Bom! E na Cron Job, não precisa mais do “?codigo=iniciocrontab0099” no fim da URL, não é?

    nao precisa mais, só usar sem

    /usr/bin/curl http://www.meusite.com.br/wp-includes/crontab.php

    Então… Funcionou. Uma solução bem melhor que o ALTERNATE_WP_CRON no wp-config.php. Fiquei atualizando o Painel e vi que todas essas alternativas trabalham de forma semelhante, o agendamento continua sendo perdido, mas ele de alguma forma força o WP a publicar.

    Como citei no post meu que mencionei acima, isso infelizmente não faz funcionar os plguns que trabalham automatizando coisas. Por exemplo: o plugin Facebook compartilharia o post numa página no nomomento da publicação. Como o agendamento é perdido isso não acontece. Nem com essas alternativas. Outro exemplo: WPeMatico publica automaticamente posts de outros sites com base em feed, num período determinado de tempo. Mas também não está funcionando com esse bug do WordPress + Servidor.

    Eram todos essenciais pra mim. Estou num mato sem cachorro.

    Agradeço demais por sua ajuda e disponibilidade, @patricknn. Valeu!

    Falto tentar apenas esse aqui: http://ninguemfez.blogspot.com.br/2012/06/word-press-agendamento-perdido.html

    Já tentou? Funciona da mesma forma?

    Essa forma é a maior gambiarra que tem, essa que postei acima executa o cron quando ele nao está sendo executado

    Um cron nao executa por varios motivos, o primeiro seria baixa visitação pois o mesmo só executa quando alguém abre o site e o outro poderia ser algum plugin de cache.

    Não uso plugin de cache e ainda não tinha sido vítima desse bug, então acho que o cron padrão do WordPress não depende de visitação. Outros plugins também funcionavam rigorosamente independente dos acessos.

Visualizando 11 respostas - 1 até 11 (de um total de 11)
  • O tópico ‘Agendamento Perdido(SOLUÇÃO DEFINITIVA)’ está fechado para novas respostas.