我正在创建在WordPress之外运行的Cron作业。从开发的角度来看,只需在命令行上运行以下命令,就可以非常轻松地调试和创建清理脚本或cron作业:
php myfile.php
我的问题是WordPress会以某种方式延迟所有输出...通常,当您运行这样的php文件时,输出会在屏幕上实时生成。
有谁知道如何防止WP将所有输出延迟到工作结束?运行PHP文件时可能缺少一些简单的参数,或者是某种常量,但是我不确定。
在下面的代码中,您希望每个输出之间有1秒的延迟,相反,我目前一次将所有信息打印在末尾:
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";
我相信这与服务器上的设置有关,而与wordpress本身无关。测试了您的代码,当从命令行运行时,它可以在我的服务器上按预期工作。您是否有可能缓存的插件?
—
Kokarn 2012年
@Kokarn你是正确的。我应该在另一个WP安装中对此进行测试。看起来是因为我正在使用W3 Total Cache。将最终的解决方案发布回此处(而不是仅停用插件)。
—
亚历克斯·库克