web-dev-qa-db-ja.com

現在のユーザーのマルチサイトのプライマリブログ(URLまたはパス)を取得する方法

マルチサイトの設定で、メンバーがいないブログ/サイトにユーザーがアクセスしているときに、自分の "プライマリ"ブログにアクセスする "HOME"へのリンクを表示します。

私はユーザーがis_current_blog_user()関数でサイトのメンバーであるかどうかを判断する方法を知っています。私が問題を抱えているのは、現在のユーザーの「プライマリ」ブログへの「HOME」リンクのURL /パスを正しく設定することです。

仮説の例:

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

Get_active_blog_for_user(http://codex.wordpress.org/Function_Reference/get_active_blog_for_user)関数が見つかりました。ここから始めるのが良いでしょう。しかし、私は何かが足りないのではないかと感じており、これは私が作っているよりも簡単なはずです。

2
Rachel Baker

確かに、get_active_blog_for_userは動作するはずです。

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

あるいは

$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