Tôi đang tạo một công việc định kỳ chạy bên ngoài WordPress. Từ góc độ phát triển, điều này giúp dễ dàng gỡ lỗi và tạo các tập lệnh dọn dẹp hoặc các công việc cron, chỉ bằng cách chạy một lệnh như sau trên dòng lệnh:
php myfile.php
Vấn đề của tôi là WordPress bằng cách nào đó trì hoãn tất cả đầu ra ... thông thường khi bạn chạy các tệp php như thế này thì đầu ra được tạo trên màn hình của bạn trong thời gian thực.
Có ai biết làm thế nào để ngăn chặn WP trì hoãn tất cả đầu ra cho đến khi kết thúc công việc không? Đây có thể là một số tham số đơn giản mà tôi thiếu khi chạy tệp PHP hoặc một hằng số nào đó, nhưng tôi không chắc chắn.
Trong đoạn mã sau, bạn sẽ có độ trễ 1 giây giữa mỗi đầu ra, thay vào đó, tôi hiện nhận được tất cả thông tin được in ở cuối, cùng một lúc:
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";