Sto creando un lavoro cron che viene eseguito al di fuori di WordPress. Dal punto di vista dello sviluppo, questo rende davvero facile il debug e la creazione di script di cleanup o cron job, semplicemente eseguendo un comando come il seguente sulla riga di comando:
php myfile.php
Il mio problema è che WordPress in qualche modo ritarda tutto l'output ... in genere quando si eseguono file php in questo modo l'output viene generato sullo schermo in tempo reale.
Qualcuno sa come impedire a WP di ritardare tutto l'output fino alla fine del lavoro? Probabilmente è un semplice parametro che mi manca durante l'esecuzione del file PHP, o una costante di qualche tipo, ma non sono sicuro.
Nel codice seguente, ti aspetteresti di avere un ritardo di 1 secondo tra ogni output, invece, al momento ottengo tutte le informazioni stampate alla fine, contemporaneamente:
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";