web-dev-qa-db-fra.com

Comment obtenir une liste de sous-blogs sans utiliser get_blog_list ()?

La fonction get_blog_list() est déconseillée depuis la v3.0. Comment obtenir une liste de blogs dans un blog multisite?

4
rsman

Trac a des discussions et du code pour un remplacement possible dans la version future, ticket # 14511 nouvelle fonction - wp_get_sites ($ args) .

4
Rarst

Vous pouvez directement interroger votre base de données.

global $wpdb;

$blogs = $wpdb->get_results( "SELECT * FROM $wpdb->blogs ORDER BY blog_id" );

Cela retournera un tableau contenant tous vos sites sur le réseau. Vous pouvez ensuite utiliser une instruction foreach pour construire et remplir votre propre tableau.

Pensez également à lire attentivement la page codex sur l’interfaçage avec la base de données WP en utilisant $wpdb, faites particulièrement attention à la méthode $wpdb->prepare requêtes plus avancées.

3
Rory Rothon

Une alternative éventuellement utile est get_blogs_of_user ($ user_id) .

C'est une alternative parfaite, mais seulement si tous les blogs ont été créés par le même utilisateur (admin) - ce qui fonctionne dans mon cas.

2
ptriek

Il existe des plugins pour cela comme http://wordpress.org/extend/plugins/multisite-recent-posts-widget/ .

J'ai utilisé un code de plugin similaire (dérivé du plugin ci-dessus) (la source d'origine n'est plus disponible, donc pas de lien, mais l'a trouvé il y a deux semaines également!) Pour créer un modèle de site multisite qui répertorie les 300 derniers nouveaux multisites.

Vous pouvez télécharger mon modèle de page sur www.google-adsense-templates.co.uk/seo-plugin/sitemap-multisite.Zip ne fonctionnera qu'avec le thème Talian 05 SEO, mais vous pourrez facilement copier le code correspondant dans vos propres thèmes. Modèle de page.

David

0
David Law