MENU

add_site_option()

add_site_option() は、WordPress のマルチサイト環境において、サイト全体で共有されるオプション(設定値)を追加するための関数です。

通常の add_option() はシングルサイト環境で使用されますが、add_site_option() はネットワーク全体で適用されるオプションを保存するのに適しています。

この関数を利用することで、ネットワーク全体で統一した設定を管理しやすくなります。

目次

機能の説明

add_site_option() は、WordPress の マルチサイト環境 で、ネットワーク全体で共有するオプションを追加するために使用します。

通常の add_option() は個々のサイトごとにオプションを保存しますが、add_site_option() を使用すると ネットワーク全体で共通の設定値 を保存できます。

主な用途

  • ネットワーク全体で統一した設定を管理する(例:共通の API キー、全サイト共通のデフォルト設定)
  • ユーザーがネットワーク管理画面から変更できるグローバルオプションを保存する
  • プラグインがマルチサイト向けの一括設定を管理する

シンプルなコード例

add_site_option('global_setting', 'default_value');
  • 'global_setting':追加するオプション名
  • 'default_value':オプションの初期値

このコードを実行すると、マルチサイト環境全体で 'global_setting' という名前のオプションが 'default_value' という値で保存されます。

使い方の説明

基本的な使い方

例えば、ネットワーク全体で共通のカスタムメッセージを設定する場合は、以下のように記述します。

if (!add_site_option('custom_network_message', 'このメッセージはすべてのサイトで表示されます。')) {
    echo 'すでにオプションが存在します。';
}
  • add_site_option() は、オプションが 存在しない場合のみ追加 する関数です。
  • すでにオプションが存在している場合は、false を返します。

オプションの更新

オプションの値を更新したい場合は、update_site_option() を使用します。

update_site_option('custom_network_message', 'メッセージが変更されました。');

オプションの取得

保存されたオプションを取得するには、get_site_option() を使用します。

$message = get_site_option('custom_network_message');
echo $message;

オプションの削除

オプションを削除する場合は、delete_site_option() を使用します。

delete_site_option('custom_network_message');

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

update_site_option()

オプションの値を更新する。

update_site_option('global_setting', 'new_value');

get_site_option()

保存されたオプションの値を取得する。

$value = get_site_option('global_setting');
echo $value;

delete_site_option()

オプションを削除する。

delete_site_option('global_setting');

add_option()

シングルサイト環境でオプションを追加する(add_site_option() のマルチサイト版)。

add_option('single_site_setting', 'value');

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

オプションが存在するか確認する

get_site_option() の戻り値を使って、オプションが存在するかを確認できます。

$value = get_site_option('global_setting', false);
if ($value !== false) {
    echo 'オプションが存在します: ' . $value;
} else {
    echo 'オプションは存在しません。';
}

すべてのオプションを確認する

データベースの wp_sitemeta テーブルを直接確認することで、保存されたすべての site_option を一覧表示できます。

SELECT * FROM wp_sitemeta;

想定されるトラブル

オプションが追加されない

解決方法

  • add_site_option()既にオプションが存在する場合は追加しない ため、update_site_option() を使う必要がある。
if (!add_site_option('global_setting', 'default_value')) {
    update_site_option('global_setting', 'default_value');
}

オプションが取得できない

解決方法

get_site_option() を使用する際に デフォルト値を設定 すると、オプションが未登録のときにエラーを防げる。

$value = get_site_option('global_setting', 'デフォルト値');

マルチサイト環境でないと機能しない

解決方法

add_site_option() はマルチサイト環境専用のため、シングルサイト環境では add_option() を使用する。

Q&A

add_option() との違いは何ですか?

add_option() は個々のサイトごとのオプションを追加し、add_site_option()ネットワーク全体で共通のオプション を追加します。

add_site_option() をシングルサイト環境で使えますか?

いいえ、マルチサイト環境専用の関数です。シングルサイト環境では add_option() を使ってください。

すでにオプションがある場合に値を変更するには?

update_site_option() を使用してください。

update_site_option('global_setting', '新しい値');

マルチサイトのどこで add_site_option() を実行すればよいですか?

init フック内や network_admin_menu フックで実行するのが一般的です。

まとめ

add_site_option() は、WordPress のマルチサイト環境において、ネットワーク全体で共通のオプションを追加するための関数です。

通常の add_option() とは異なり、すべてのサイトで共有される設定を管理できます。

オプションの更新には update_site_option()、取得には get_site_option() を組み合わせることで、効率的にサイト全体の設定を管理できます。

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

コメント

コメントする

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

目次