概要
is_main_site
関数は、WordPressのマルチサイト機能において、現在のサイトがメインサイトかどうかを調べるために使用されます。この関数は、特に以下のような機能を実装する際によく使われます。
- プラグインの動作を特定のサイトに限定する
- メインサイトにしか必要ないウィジェットを表示する
- メインサイト専用のスタイルシートやスクリプトを読み込む
- メインサイトに特化したコンテンツを表示する
- アップデートやアクションをメインサイトのみで実行する
- メインサイトでの特定の設定ページを管理する
- マルチサイト環境でのユーザー管理を効率化する
- メインサイトに特有のカスタムポストタイプを定義する
構文
is_main_site( $blog_id );
パラメータ
$blog_id
(int): 検査対象のサイトのID。省略した場合は現在のサイトIDが使用されます。
戻り値
true
(bool): 現在のサイトがメインサイトの場合。false
(bool): 現在のサイトがメインサイトでない場合。
関連する関数
使用可能なバージョン
- WordPress 3.0 以降
コアファイルパス
wp-includes/ms-functions.php
サンプルコード
サンプルコード1
if ( is_main_site() ) {
echo "このサイトはメインサイトです。";
}
説明: 現在のサイトがメインサイトであれば、メッセージを表示します。
サンプルコード2
if ( is_main_site( get_current_blog_id() ) ) {
// メインサイトでのみ実行するコード
// 例: メインサイト専用のメニューを表示
display_main_site_menu();
}
説明: 現在のサイトがメインサイトの場合、特定のメニューを表示します。
サンプルコード3
function enqueue_main_site_scripts() {
if ( is_main_site() ) {
wp_enqueue_script( 'main-site-script', 'path/to/script.js' );
}
}
add_action( 'wp_enqueue_scripts', 'enqueue_main_site_scripts' );
説明: メインサイトでのみ特定のJavaScriptファイルを読み込みます。
サンプルコード4
function my_custom_admin_notice() {
if ( is_main_site() ) {
echo '<div class="notice notice-warning">これはメインサイトです。</div>';
}
}
add_action( 'admin_notices', 'my_custom_admin_notice' );
説明: 管理画面でメインサイトの場合にカスタム通知を表示します。
サンプルコード5
function conditional_widget() {
if ( is_main_site() ) {
register_sidebar( array( 'name' => 'Main Site Widget Area' ) );
}
}
add_action( 'widgets_init', 'conditional_widget' );
説明: メインサイトの場合のみウィジェットエリアを登録します。
この関数のアクションでの使用可能性
アクション名 | 使用可能 |
---|---|
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 |
非推奨バージョン
- 特に非推奨または削除されたバージョンはありません。