web-dev-qa-db-ja.com

マルチサイトのブログIDを取得していますが、何らかの理由で正しくIDを取得できていません

ディレクトリ一覧を作成して、最短のクエリをまとめました。それはリストを返しても問題ないようです(私は思う)が、foreachはどういうわけか配列を適切に処理するのに失敗しています。だれかが私が間違っていることについてのコツを教えてくれる?

global $wpdb; 
$site_blog_ids = array($wpdb->get_results($wpdb->prepare("SELECT blog_id FROM wp_blogs     where blog_id > 1"))); // get all subsite blog ids

print_r( $site_blog_ids ); // checkem - output is "Array ( [0] => Array ( [0] => stdClass Object ( [blog_id] => 2 ) [1] => stdClass Object ( [blog_id] => 3 ) [2] => stdClass Object ( [blog_id] => 5 ) ) ) "

foreach( $site_blog_ids as $site_blog_id ) { //iterate through the ids
print_r( "siteid ".$site_blog_id ); // checkem - this just outputs "array array" ?? 

ブログIDはどういうわけか正しくforeachを通って来ていません、それはそれがブログIDのリストを示すべきであるのに対し、それはただ「配列配列」を出力しています。これは$ site_blog_ids配列の問題のように見えますか、それとも他に何か混乱しましたか?

助けてくれてありがとう!ダビデ

MBoynesの助けによるV.2。 wpdbはすでに配列を出力しているので、double配列を修正しました。しかし、それでも$ site_blog_idを出力することはできません。 "$ site_blog_ids [0] AS $ site_blog_id"に変更しても、配列の最初のものが出力されるだけで停止します。

global $wpdb; 
$site_blog_ids = $wpdb->get_results($wpdb->prepare("SELECT blog_id FROM wp_blogs where     blog_id > 1")); // get all subsite blog ids

print_r( $site_blog_ids ); // checkem - output is "Array ( [0] => stdClass Object ( [blog_id] => 2 ) [1] => stdClass Object ( [blog_id] => 3 ) [2] => stdClass Object ( [blog_id] => 5 ) ) "

foreach( $site_blog_ids AS $site_blog_id ) { //iterate through the ids
print_r( "siteid= ".$site_blog_id."</br>" ); // checkem - this shows no blog ids output at all ??

v.3子孫グローバル$ wpdbの作業バージョン。 $ site_blog_ids = $ wpdb-> get_results($ wpdb-> prepare( "blog_id> 1"からblog_idを選択)を選択)); //すべてのサブサイトのブログIDを取得する

print_r( $site_blog_ids ); // checkem - output is "Array ( [0] => stdClass Object ( [blog_id] => 2 ) [1] => stdClass Object ( [blog_id] => 3 ) [2] => stdClass Object ( [blog_id] => 5 ) ) "

foreach( $site_blog_ids AS $site_blog_id ) { //iterate through the ids
print_r( "siteid= ".$site_blog_id->blog_id."</br>" ); // checkem - anything in the loop that needs the blog ID value must pull it with the ->blog_id key. 
1
Dains

$site_blog_idsを配列の配列に設定しています。その場合は、foreach ($site_blog_ids[0] as...をしたいと思うでしょう

2
Matthew Boynes