私はそのような大きなオブジェクトを扱うことに慣れていません (へへ)。mysql クエリからすべてのサブドメインを実行するクエリがあります。
$blogs = $wpdb->get_results(
"SELECT blog_id,path FROM {$wpdb->blogs}
WHERE blog_id != {$wpdb->blogid}
AND site_id = '{$wpdb->siteid}'
AND spam = '0'
AND deleted = '0'
AND archived = '0'
order by blog_id", ARRAY_A
);
次に、それらに対して foreach を実行してデータを取得します (具体的にはブログ名)。
foreach( $blogs as $blog ) :
switch_to_blog( $blog[ 'blog_id' ] );
if(strpos(strtolower($blog_details->blogname), strtolower($_GET['squery'])) !== false){
//Show the site's title and link to the site
}
endforeach;
$wpdb->blogs
これを行っているのは、ユーザーがテーブルで利用できない名前でサイトを検索できるようにする必要があるためです。URL は smsalem かもしれませんが、ユーザーは「サービス マスター」または単に「サービス」などを検索します。
メモリ不足のエラーが発生したため、メモリ制限を 256 MB に上げました (これは高すぎますか? それとも、それ以上にできますか?)。
これで問題なく完了し、メモリ使用量をエコーして201043248、201mb を得ました。私の最初の$blogs
配列には、約 1,400 個の項目があります。
これは「機能します」が、誰かがそのページを使用するたびに 201mb が非常に高くなるのではないかと心配しています (専用サーバーがあります)。約 (今後 1 年か 2 年で 5,000 以上のサイトを検討している可能性があります)