概要
is_multisite
関数は、WordPressがマルチサイトモードで動作しているかどうかを調べるための関数です。この関数は、サイトのネットワーク構成や設定に応じた機能を実装する際によく使われます。具体的には、以下のような場合で利用されることが多いです。
- マルチサイト特有の管理メニューを表示するかどうかの判定
- サイト間でのユーザーアクセス権の制御
- プラグインやテーマの設定をマルチサイト仕様で変更する際のチェック
- 特定の機能をマルチサイト専用にカスタマイズする
- サイト全体の設定をマルチサイト用に読み込む際の条件分岐
- サイトのURL構造をマルチサイト形式に適応させる
- リダイレクト処理の制御を行う
- マルチサイト用のカスタムクエリの発行
構文
is_multisite();
パラメータ
この関数には引数はありません。
戻り値
is_multisite
関数は、マルチサイト機能が有効な場合はtrue
、無効な場合はfalse
を返します。
関連する関数
使用可能なバージョン
is_multisite
関数は、WordPress 3.0以降で使用可能です。
コアファイルのパス
この関数は、wp-includes/ms-functions.php
ファイルに含まれています。
サンプルコード
サンプルコード 1: マルチサイト名の表示
if (is_multisite()) {
echo "このサイトはマルチサイトです。";
} else {
echo "このサイトはマルチサイトではありません。";
}
このコードは、現在のサイトがマルチサイト環境かどうかをチェックし、その結果に基づいてメッセージを表示します。
サンプルコード 2: プラグインの条件分岐
if (is_multisite()) {
// マルチサイト用の特別な処理を実行
add_action('network_admin_menu', 'my_network_admin_menu');
}
このコードでは、サイトがマルチサイトの場合に、ネットワーク管理メニューに特定のメニューを追加しています。
サンプルコード 3: ユーザーのアクセス権管理
if (is_multisite() && current_user_can('manage_network')) {
// ネットワーク管理者のための処理
// 例: 特定の機能を表示
}
このコードは、マルチサイト環境でかつユーザーがネットワーク管理者であるかどうかをチェックし、特定の機能を表示するかを決定します。
サンプルコード 4: テーマのカスタマイズ
if (is_multisite()) {
add_filter('theme_mods_' . get_current_blog_id(), 'my_theme_mods');
}
このコードは、ブログIDに基づいて特定のテーマ設定をマルチサイトに適用するためのフィルターを追加しています。
サンプルコード 5: URLリダイレクト
if (is_multisite()) {
add_action('template_redirect', 'my_redirect_function');
}
このコードでは、マルチサイトの場合のみ特定のリダイレクト処理を実行するために、template_redirect
アクションにフックしています。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | 〇 |
get_header | |
wp_head |
非推奨・削除されたバージョン
特に非推奨または削除されたバージョンはありません。