概要
get_sites 関数は、WordPressのマルチサイト機能において、サイトIDまたはサイト数を取得するための関数です。この関数は、マルチサイトネットワーク内のサイトをリストアップしたり、その特定のサイトについての情報を取得したりする際に非常に便利です。以下のような機能を実装する際によく使われます:
- サイトの一覧表示
- サイトのメタ情報取得
- サイトの統計データ表示
- サイトのバックアップ管理
- サイト間のデータ共有
- サイトごとのカスタム機能設定
- マルチサイト管理ダッシュボードの作成
- 特定サイトへのアクセス制限設定
構文
array get_sites( $args = array() )
パラメータ
$args(配列) – 取得するサイトの条件を指定するための引数。デフォルトは空の配列。
戻り値
- (配列) 取得したサイトの情報を含む配列。各サイトはオブジェクト形式で、関連するプロパティ(例:ID、ドメイン、パスなど)が含まれます。
関連する関数
使用可能なバージョン
- WordPress 3.0 以降
コアファイルのパス
wp-includes/ms-functions.php
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| 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 | 〇 |
get_sites 関数は特定のワードプレスバージョンで非推奨又は削除された場合はありません。
サンプルコード
サンプルコード1: すべてのサイトを取得する
$all_sites = get_sites();
foreach ( $all_sites as $site ) {
echo $site->blog_id . ': ' . $site->domain . $site->path . '<br>';
}
このコードは、マルチサイト内のすべてのサイトを取得し、それぞれのサイトIDとURLを表示します。
サンプルコード2: 特定の条件でサイトを取得する
$args = array(
'public' => 1,
);
$public_sites = get_sites( $args );
foreach ( $public_sites as $site ) {
echo $site->blog_id . '<br>';
}
このコードは、公開されているサイトのみを取得し、サイトIDを表示します。
サンプルコード3: サイトのメタデータを取得する
$sites = get_sites();
foreach ( $sites as $site ) {
$details = get_blog_details($site->blog_id);
echo 'サイトタイトル: ' . $details->blogname . '<br>';
}
このコードは、すべてのサイトのブログタイトルを取得し表示します。
サンプルコード4: サイトの数をカウントする
$sites = get_sites();
$site_count = count($sites);
echo 'サイトの数: ' . $site_count;
このコードは、マルチサイト内のサイトの総数をカウントし表示します。
サンプルコード5: 特定のサイトを取得する
$site_id = 1; // 取得したいサイトのID
$site = get_sites(['site__in' => [$site_id]]);
echo 'サイトID: ' . $site[0]->blog_id;
このコードは、特定のサイトIDを指定してそのサイトの情報を取得し表示します。