web-dev-qa-db-fra.com

Récupération des identifiants de blogs multisites, sans pouvoir les identifier correctement

Travailler sur une liste de répertoires et avoir bricolé ensemble la requête la plus courte possible. Il semble que la liste soit correcte (je pense) mais le foreach ne parvient pas à traiter correctement le tableau. Quelqu'un peut-il me donner un conseil sur ce que je fais mal?

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" ?? 

Les identifiants de blog ne traversent pas correctement foreach, ils sortent simplement "array array" alors qu'il devrait afficher la liste des identifiants de blog. Est-ce que cela ressemble à un problème avec le tableau $ site_blog_ids ou est-ce que j'ai gâché quelque chose d'autre?

Merci pour toute aide! David

V.2 par aide de MBoynes. Correction du double tableau car wpdb génère déjà un tableau. Mais cela ne fonctionne toujours pas au foreach pour sortir le $ site_blog_id, et passer à "$ site_blog_ids [0] AS $ site_blog_id" ne renvoie que le premier du tableau puis s’arrête.

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 Version de travail pour la postérité globale $ wpdb; $ site_blog_ids = $ wpdb-> get_results ($ wpdb-> prepare ("SELECT blog_id FROM wp_blogs où blog_id> 1")); // récupère tous les identifiants de blogs de sous-sites

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

Vous définissez $site_blog_ids pour être un tableau de tableaux. Dans ce cas, vous voudriez faire foreach ($site_blog_ids[0] as...

2
Matthew Boynes