functions.phpではなくプラグインでマルチサイトを制御

wordpressのテーマのための関数はシングルサイト向け

マルチサイト全体をカスタマイズする初期化プラグイン

wordpressのテーマにはfunctions.phpというテーマのための関数を用意でき、既存のテーマをカスタマイズする際に利用されている。

シングルサイトとしてwordpressを利用する場合にはfuncitons.phpに関数を追加していく方法で問題はないが、マルチサイト環境下ではそのテーマを有効化しておかないとカスタマイズ内容が反映されないということになる。

具体的には、wordpressの管理画面に対するカスタマイズのことを指していて、管理画面に対する変更をテーマのための関数として追加していくと、テーマを変えてしまうと管理画面のカスタマイズが反映されないという結果になる。

マルチサイト環境下でテーマを変更しても管理画面に対するカスタマイズを有効化したい場合には、プラグインでカスタマイズを行うのが効果的です。

プラグインの作成方法はシンプル

プラグインを作成するフォルダは以下の階層になる。

wp-content\plugins

この階層でプラグインファイルを開発する。今回はstart.phpというマルチサイト初期化プラグインを作成する。その場合以下のような階層になる。

wp-content\plugins\start\start.php

ファイルを作成したら以下のようにコードを書いてみる。

<?php
/*
Plugin Name: start
Plugin URI: http://test.net/plugin
Description: マルチサイト初期化プラグイン
Author: me
Version: 0.1
Author URI: http://test.net
*/

$start = new Start;
class Start {
    function __construct() {
	add_action('admin_menu', array($this, 'remove_menus'));
    }

    function remove_menus() {
        remove_menu_page('users.php');
    }
}

コードを書いてファイルを保存し、

wp-admin/network/plugins.php

にアクセスするとstartという新しいプラグインが一覧に追加される。startプラグインのネットワークで有効化リンクをクリックするとプラグインは有効化される。

このプラグインは、管理メニューの[ユーザー]メニューを一覧から非表示にする簡単なプラグインで、冒頭書いたようにテーマを変更してもメニューは非表示にされたままにできるwordpressのマルチサイトシステム全体を制御するプラグインとも考えられる。実際このプラグインを拡張することでマルチサイト全体を制御することが可能。

マルチサイト全体の初期化はfunctions.phpではなくプラグインがおすすめです。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

functions.phpではなくプラグインでマルチサイトを制御の記事にコメントを投稿

開発