MENU

add_network_option()

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

通常の add_option() とは異なり、特定のサイトではなくネットワーク全体で有効な設定を保存する場合に使用されます。

例えば、ネットワーク内のすべてのサイトで共通の設定を保持したい場合に便利です。この関数を活用すると、マルチサイト環境での設定管理が容易になります。

目次

機能の説明

add_network_option() は、ネットワーク全体で共通のオプションを追加するための関数です。通常の add_option() は個々のサイトごとに適用されますが、この関数を使うことでマルチサイト全体で統一された設定を保存できます。

主な用途

  • マルチサイト全体で共通の設定を追加する
  • プラグインのグローバル設定を保存する
  • ネットワーク全体のカスタマイズオプションを追加する

シンプルなコード例

add_network_option(1, 'custom_network_setting', 'enabled');
  • 1:ネットワークID(通常は 1 でメインネットワークを指す)
  • 'custom_network_setting':追加するオプション名
  • 'enabled':保存する値

このコードを実行すると、ネットワーク全体に custom_network_setting というオプションが enabled という値で追加されます。

使い方の説明

以下のコードでは、add_network_option() を使ってカスタム設定を追加し、適用されているかを確認する例を示します。

$network_id = get_current_network_id();
$option_name = 'global_message';
$option_value = 'Welcome to our network!';

// ネットワークオプションを追加
if (!get_network_option($network_id, $option_name)) {
    add_network_option($network_id, $option_name, $option_value);
}

// 追加したオプションを取得
echo get_network_option($network_id, $option_name);

引数の説明

  • $network_id:適用するネットワークのID(get_current_network_id() で取得可能)
  • $option_name:追加するオプションのキー名
  • $option_value:オプションの値

このコードを実行すると、global_message というオプションがネットワーク全体に保存され、Welcome to our network! というメッセージが表示されます。

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

get_network_option()

ネットワークオプションを取得するための関数です。

$value = get_network_option(1, 'custom_network_setting');
echo $value;

update_network_option()

既存のネットワークオプションを更新する場合に使用します。

update_network_option(1, 'custom_network_setting', 'disabled');

delete_network_option()

ネットワークオプションを削除する場合に使用します。

delete_network_option(1, 'custom_network_setting');

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

ネットワークオプション以外にも、以下の関数を活用することで、より柔軟なデータ管理が可能です。

get_site_option()

通常のオプションを取得する(マルチサイトでない場合に使用)

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

add_option()

単一サイト向けのオプションを追加する場合

add_option('custom_setting', 'value');

想定されるトラブル

add_network_option() でオプションが保存されない

  • add_network_option() は既に存在するオプションには適用されません。
  • マルチサイトが有効化されていない可能性があります。

解決方法

get_network_option() を使ってオプションが存在するか確認し、なければ追加する

$network_id = 1;
$option_name = 'test_option';

if (!get_network_option($network_id, $option_name)) {
    add_network_option($network_id, $option_name, 'test_value');
}

Q&A

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

add_option() は単一のサイトでのみ機能するのに対し、add_network_option() はマルチサイト環境でネットワーク全体に適用されます。

追加したオプションはどこで確認できますか?

get_network_option() を使って確認できます。また、データベースの wp_sitemeta テーブルにも保存されています。

既にオプションがある場合でも add_network_option() を実行できますか?

いいえ、add_network_option() は既存のオプションには影響しません。更新する場合は update_network_option() を使います。

まとめ

add_network_option() は、WordPressのマルチサイト環境でネットワーク全体に適用されるオプションを追加するための関数です。

単一サイトではなく、全サイトに共通する設定を保存する場合に便利です。

すでに存在するオプションには適用されないため、事前に get_network_option() でチェックすることが推奨されます。

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

コメント

コメントする

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

目次