get_site_option()とget_blog_option()の違いを理解しようとしています。
あるブログやサイト別物?この質問が基本的なように見える場合はお詫びしますが、WordPressのWebサイトを参照するときは、両方の用語を非常に大まかに(同じ意味で)使用してきました。私は今違いがあるかどうか疑問に思っていますか?
get_site_option()とget_blog_option()の違いを理解しようとしています。
あるブログやサイト別物?この質問が基本的なように見える場合はお詫びしますが、WordPressのWebサイトを参照するときは、両方の用語を非常に大まかに(同じ意味で)使用してきました。私は今違いがあるかどうか疑問に思っていますか?
回答:
get_option()
現在のブログのオプションを返します。
単一サイトのインストールでは、現在のブログが唯一のブログです。したがって、get get_option()
はそのオプションを返します。
get_site_option()
ネットワーク全体のオプションを取得するために使用されます。つまり、ネットワークのどのサイトからでも同じオプションを取得できます。
この関数を単一のインストールで使用すると、通常はと同じものが返されますget_option()
。get_site_option()
によってトリガーされないトリガーフィルターフックのため、値が変更される場合がありますget_option()
。
一度ことを注意$wpdb->options
表はブログ特有であり、ネットワーク全体のオプションが中に保存されている$wpdb->sitemeta
テーブル、マルチサイトインストールの固有のものです。
get_blog_option()
3つの関数の中で、オプション名を第1引数として受け取らないのは唯一ですが、その第1引数は$blog_id
です。
実際、IDがわかっている特定のブログからオプションを取得するために、マルチサイトインストールで使用されます。
この関数の機能は次のとおりです。
switch_to_blog( $blog_id );
$value = get_option( $option, $default );
restore_current_blog();
return $value;
$blog_id
が現在のブログIDと同じ場合、WordPressはそのswitch_to_blog
部分をスキップしてを呼び出しますget_option()
。
この関数はwp-includes/ms-blogs.php
、マルチサイトインストールの場合のみロードされるファイルで定義されているためget_blog_option()
、単一サイトインストールでは定義されていません。
get_site_option()
-ネットワーク全体のオプションを取得します。このオプションは通常、マルチサイト設定の[ネットワーク管理設定]セクションに追加されます。50のサイトがある場合、50の異なるサイトに移動して同じオプション値を設定するのは面倒です。代わりに、オプションの値を一度設定して、ネットワーク全体のすべてのサイトに適用することができます。http://codex.wordpress.org/Function_Reference/get_site_optionを参照してください
get_blog_option()
-特定のサイトのオプションの値を取得できます。1つの例は、各サイトのユーザー固有のオプションの値を取得することです。したがって、ユーザーが所属するすべてのサイトを取得し、サイトIDのリストをループしget_blog_option()
てblog_id
、オプション名を渡して結果を取得することもできます。これは、ほとんど次のことを行う便利な関数です。
switch_to_blog( $id );
$value = get_option( $option_name );
restore_current_blog();
http://codex.wordpress.org/Function_Reference/get_blog_optionを参照してください
tl; dr: get_site_option()
ネットワーク全体の値をget_blog_option()
取得し、特定のサイトの特定の値を取得します。最初に自分でそのサイトに切り替える必要はありません。