Estou criando um trabalho cron que é executado fora do WordPress. Do ponto de vista do desenvolvimento, isso facilita muito a depuração e a criação de scripts de limpeza ou tarefas cron, executando apenas um comando como o seguinte na linha de comando:
php myfile.php
Meu problema é que o WordPress atrasa de alguma forma toda a saída ... normalmente, quando você executa arquivos php como este, a saída é gerada na tela em tempo real.
Alguém sabe como impedir o WP de atrasar toda a saída até o final do trabalho? Provavelmente é um parâmetro simples que estou ausente ao executar o arquivo PHP ou uma constante de algum tipo, mas não tenho certeza.
No código a seguir, você esperaria um atraso de 1 segundo entre cada saída. Em vez disso, recebo todas as informações impressas no final de uma só vez:
set_time_limit( 0 );
ini_set( "memory_limit", "64M" );
ob_start();
require_once( dirname( __FILE__ ) . '/wp-load.php' ); // you need to adjust this to your path
ob_end_clean();
global $wpdb;
$q = $wpdb->prepare ("SELECT * FROM wp_posts LIMIT 5");
$results = $wpdb->get_results ($q);
echo "found " . count ($results) . "\n";
foreach ($results as $post)
{
echo $post->post_title . "\n";
sleep(1);
}
echo "\n\ndone";