MENU

add_site_meta()

add_site_meta() は、WordPress のマルチサイト環境でサイト(ブログ)ごとのメタデータを追加するための関数です。

この関数を使用することで、特定のサイトに紐づくカスタムデータを保存できます。

例えば、各サイトのカスタム設定や追加情報を管理する場合に役立ちます。データは wp_sitemeta テーブルに保存され、get_site_meta() で取得できます。

目次

機能の説明

この関数の役割

  • add_site_meta()WordPress マルチサイト環境 でのみ使用可能。
  • 指定したサイトに対して カスタムメタデータ を追加。
  • get_site_meta() で追加したデータを取得できる。

使用する場面

  • 各サイトごとの独自設定を保存(例: サイトごとのカスタムオプション)
  • プラグインのカスタムデータ保存(例: 各サイトで異なる広告設定)
  • 特定の情報をサイト単位で管理(例: サイトの登録日やプラン情報)

シンプルなコード例

add_site_meta(1, 'custom_option', 'value');
  • 1:サイトID(1 はメインサイト)
  • 'custom_option':保存するメタデータのキー
  • 'value':保存する値

このコードを実行すると、サイトID 1'custom_option' => 'value' というメタデータが追加されます。

使い方の説明

基本的な使い方

add_site_meta() を使用して、サイトごとにカスタムメタデータを追加します。

$site_id = 2; // 追加対象のサイトID
$key = 'admin_email';
$value = 'admin@example.com';

if ( ! add_site_meta($site_id, $key, $value, true) ) {
    echo 'すでにデータが存在するため追加できませんでした。';
} else {
    echo 'メタデータを追加しました。';
}

引数の説明

  1. $site_id(整数) – メタデータを追加するサイトのID。
  2. $meta_key(文字列) – メタデータのキー(識別名)。
  3. $meta_value(任意の値) – 保存する値(文字列、配列、オブジェクトなど)。
  4. $unique(ブール値) – 同じキーのデータがすでにある場合に追加を防ぐ(true にすると重複登録を防止)。

データがすでにある場合の処理

もし既存のメタデータが存在する場合、add_site_meta() はデータを追加せず false を返します。その場合は update_site_meta() を使用して値を更新できます。

if (! add_site_meta($site_id, $key, $value, true)) {
    update_site_meta($site_id, $key, $value);
}

一緒に使うことが多い関連タグ

get_site_meta()

保存したメタデータを取得。

$admin_email = get_site_meta(2, 'admin_email', true);
echo $admin_email; // 出力: admin@example.com

update_site_meta()

既存のメタデータを更新。

update_site_meta(2, 'admin_email', 'newadmin@example.com');

delete_site_meta()

保存されたメタデータを削除。

delete_site_meta(2, 'admin_email');

追加情報で取得したい場合

サイトのすべてのメタデータを取得

サイトに登録されているすべてのメタデータを get_site_meta() で取得できます。

$all_meta = get_site_meta(2);
print_r($all_meta);

出力例

Array (
    [admin_email] => Array ( [0] => admin@example.com )
    [custom_setting] => Array ( [0] => some_value )
)

想定されるトラブル

add_site_meta() が機能しない

解決方法

マルチサイトが有効になっているか確認

add_site_meta() はシングルサイトでは使用できません。
is_multisite() を確認しましょう。

if (! is_multisite()) {
    echo 'マルチサイトでのみ使用可能です。';
}

同じキーでデータが重複する

解決方法

$uniquetrue に設定すると、同じキーのデータが存在する場合は追加されません。

add_site_meta(2, 'custom_key', 'value', true);

Q&A

add_site_meta() は通常の add_post_meta() と何が違いますか?

add_post_meta() は投稿(記事)のメタデータを保存しますが、add_site_meta() はサイト単位のメタデータを保存します。

シングルサイトでも add_site_meta() は使えますか?

いいえ、add_site_meta() はマルチサイト環境専用の関数です。

add_site_meta() で配列を保存できますか?

はい、add_site_meta() では配列やオブジェクトも保存可能です。

$data = array('color' => 'blue', 'size' => 'large');
add_site_meta(2, 'site_settings', $data);

まとめ

add_site_meta()WordPress のマルチサイト環境サイトごとのカスタムメタデータ を追加するための関数です。

データを取得するには get_site_meta()、更新するには update_site_meta() を利用します。

マルチサイトのカスタム設定を管理する際に便利な関数なので、プラグイン開発時などに活用できます。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次