Estoy creando un trabajo cron que se ejecuta fuera de WordPress. Desde una perspectiva de desarrollo, esto hace que sea muy fácil depurar y crear scripts de limpieza o trabajos cron, simplemente ejecutando un comando como el siguiente en la línea de comandos:
php myfile.php
Mi problema es que WordPress retrasa de alguna manera toda la salida ... generalmente cuando ejecuta archivos php como este, la salida se genera en su pantalla en tiempo real.
¿Alguien sabe cómo evitar que WP retrase toda la salida hasta el final del trabajo? Probablemente sea un parámetro simple que me falta al ejecutar el archivo PHP, o una constante de algún tipo, pero no estoy seguro.
En el siguiente código, esperaría tener un retraso de 1 segundo entre cada salida, en cambio, actualmente obtengo toda la información impresa al final, de una 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";