【WordPressマルチサイト】プラグインの挙動~インストール・有効化・個別設定の共有など~

マルチサイト化したWordPressにおいて、プラグインの挙動を確認する。

インストールの挙動

プラグインのインストールはサイトネットワーク管理で行い、子サイトは自由にプラグインをインストールすることはできない。しかし、子サイトはサイトネットワーク管理にインストールされたプラグインのすべてを、自由に有効化・無効化することができる。

サイトネットワークにインストールしたプラグインの数は、子サイトのプラグイン一覧に表示されるプラグインの数を一致する。

テーマのように、個別に子サイトにプラグインを利用できるようにすることはできない。

サイトネットワークで有効化するとすべてのサイトで強制的に適用される

また、サイトネットワークで有効化すると、すべての子サイトで有効化され、子サイト側で無効化することはできない。つまり、すべてのサイトで強制的に有効化したいときは、サイトネットワークで有効化が選択肢となる。

サイトネットワークで有効化したプラグインは、子サイト側で各自設定する自由はある。

個別プラグイン設定は共有しない

各子サイトでプラグインの設定を行っても、別サイトには適用されない。

これはプラグインデータが子サイトのデータベースに保存されているためである。

プラグインの設定情報はデータベースに保存される①

プラグインデータをデータベースに保存する
プラグインはセッションをまたいで動作させるためにデータを永続化させる必要があることがあります。
wordpress では4つのメソッドによってそれを実現できます。

option 機構を利用する方法。この方法は比較的が少量の名前付きデータを格納するのに適しています。プラグインの初期設定時に管理者にデータを入力させます。その後はあまり変更されないデータに適した方法です。
PostMeta を利用する方法。記事やページやアタッチメントなどの投稿に対して保存されるメタ情報に関連付けてデータを保存します。
カスタムタクソノミーを利用する方法。カスタムタクソノミーのタームに紐づけてすべての投稿やオブジェクトを参照するような場合はこちらを利用してください。
新しいテーブルを作成する方法。ポスト、ページ、アタッチメント、コメントなどに紐付いていないデータを保存する際に有効です。

プラグインの設定情報はデータベースに保存される②

データの保存先はデータベース
データは、データベースの wp_options テーブルに保存されますが、プラグインオプション値専用というわけではなく、WordPress の標準の設定値を保存するのと共有して使われています

プラグインエディターはサイトネットワーク管理のみ行える

プラグインエディターを使用できるのはサイトネットワーク管理のみである。子サイトはプラグインエディターを使用できない。

プラグインのアップデートはサイトネットワーク管理のみ行える

プラグインの更新を行えるのは、サイトネットワーク管理のみである。子サイトでは行えない。

まとめ

サイトネットワーク管理子サイト
インストール
更新
エディター
有効化・無効化