web-dev-qa-db-fra.com

Comment puis-je obtenir un blog principal multisite (URL ou chemin) pour l'utilisateur actuel?

Dans une configuration multisite, lorsque les utilisateurs visitent un blog/site sans aucun membre, je souhaite afficher un lien vers "HOME" qui les dirige vers leur blog "principal".

Je sais comment déterminer si un utilisateur est ou non membre d'un site doté de la fonction is_current_blog_user (). La partie avec laquelle je rencontre un problème est de définir correctement l’url/chemin du lien "HOME" vers le blog "principal" des utilisateurs actuels.

Exemple hypothétique:

<a href="<?php this_is_the_path_to_users_primary_blog();?>">HOME</a>

J'ai trouvé la fonction get_active_blog_for_user (http://codex.wordpress.org/Function_Reference/get_active_blog_for_user), et cela semble être un bon point de départ. Mais je sens qu'il me manque quelque chose, et cela doit être plus facile que je ne le fais.

2
Rachel Baker

En effet, get_active_blog_for_user devrait fonctionner.

$blog = get_active_blog_for_user( get_current_user_id() );
$blog_url = $blog->domain... /* or $blog->path, together with $blog->siteurl */

Alternativement:

$blog_id = get_active_blog_for_user( get_current_user_id() )->blog_id;
// note: changed "->userblog_id" to "->blog_id" in row above to make it work.
switch_to_blog( $blog_id ); /* switch context */
$home_url = home_url();
restore_current_blog(); /* back */
3
soulseekah