マルチサイト対応
マルチサイト環境(1つのWordPressで複数サイトを運営する仕組み)に対応したプラグインを開発するための、基本的な考え方を解説します。
ネットワーク全体での有効化
マルチサイト環境では、プラグインを「ネットワーク管理者」権限で全サイト一括有効化するか、サイトごとに個別有効化するかを選べます。プラグインヘッダーで対応を明示できます。
<?php
if (is_plugin_active_for_network(plugin_basename(__FILE__))) {
// ネットワーク全体で有効化されている場合の処理
}
サイトごとの設定管理
マルチサイトでは、サイトごとに異なるデータベーステーブルプレフィックス(wp_2_options等)が使われます。switch_to_blog()関数を使うと、特定のサイトのコンテキストに一時的に切り替えて処理できます。
<?php switch_to_blog($blog_id); // このサイトのデータに対する処理 restore_current_blog();
ネットワーク管理画面への設定ページ追加
<?php
add_action('network_admin_menu', function () {
add_menu_page('My Plugin Network Settings', 'My Plugin', 'manage_network_options', 'my-plugin-network', 'my_plugin_network_page');
});
マルチサイト自体の解説マルチサイト機能そのものについてはマルチサイト機能で解説しています。