私は複数のスレッドを作成するためにpthreadを使用しています。これらの各スレッドは、ある時点でget_posts()
次のように使用しようとします。
$args = array(
'post_type' => 'post',
'post_status' => 'any'
);
$posts_list = get_posts($args);
ただし、次のクラッシュが発生します。
HP Fatal error: Call to a member function get() on a non-object in C:\dev\wordpress\wp-includes\cache.php on line 123
注意してください、私は同じにする際にget_posts()
通されていないコードセクションでの呼び出しを、私がクラッシュを持っていません。
さて、私の質問、pthreadスレッドget_posts()
内から呼び出す方法は?それができない場合、代替手段は何ですか?
ありがとう。
更新
ここにサンプルコードがあります
class My_Thread extends Thread {
public function run() {
/* DO SOME STUFF HERE */
$args = array(
'post_type' => 'post',
'post_status' => 'any'
);
$posts_list = get_posts($args); // <------ This is causing the crash
}
}
// Create a array
$threads = array();
//Iniciate Miltiple Thread
foreach ( range("A", "C") as $i ) {
$threads[] = new My_Thread($i);
}
// Start The Threads
foreach ($threads as $thread) {
$thread->start();
}
get_posts()
呼び出しを行うと、クラッシュしない」と私が述べた点を逃したようです。だから私のget_posts($args)
電話で問題はありません。さらに、この時点で保護する必要のあるコードはありません。私はWordPress DBからを読んでいるだけですget_posts($args)
。