[WordPress] 別ディレクトリのWPとfunctions.phpを共有する
2018/04/07
複数のWordPressを運営している場合に、別の場所にあるWordPressシステムとテーマファイルを共有する方法です。
前回、functions.php以外のテーマファイルの共有方法を説明しました。
今回は functions.php の共有方法です。
functions.php 内で別ファイルの読み込み
方法は意外と簡単でした。functions.php を複数のファイルに分割する場合と同じく、functions.php 内で別ファイルを呼び出すことで実現できます。
分割したファイルの呼び出し
通常なら分割したファイルをこう呼び出します。
require 'functions_hoge.php';
これを、サーバー上のフルパスで記述するようにします。例えばこんな感じです。
require '/home/username/itjo.jp/public_html/wordpress/wp-content/themes/hoge/functions_hoge.php';
「/home/username/itjo.jp/public_html」の部分はサーバーによって異なるので適宜変更してください。
サイトAからもサイトBからも、同じサイトAのphpファイルを参照するようにすることで、一つのファイルに統一するということです。
functions.php は外部ファイルの呼び出しだけにした方が良い
サイトAもサイトBも functions.php には外部ファイルの呼び出しだけにした方が管理しやすいです。
サイトA の functions.php
<?php require '/home/...[サイトA].../themes/hoge/functions_hoge.php'; require '/home/...[サイトA].../themes/hoge/functions_fuga.php'; ?>
サイトB の functions.php
<?php require '/home/...[サイトA].../themes/hoge/functions_hoge.php'; require '/home/...[サイトA].../themes/hoge/functions_fuga.php'; ?>
あとはサイトAに functions_hoge.php と functions_fuga.php を用意すれば、一つのファイルに統一できます。
サイトBからサイトAの functions.php を直接参照することもできますが、やめておいた方が良いです。直接 functions.php を参照してしまうと、片方のサイトだけに適用したい関数を追加することができなくなります。現状そのような関数が無かったとしても、後々必要になる可能性を想定しておくべきだと思います。
まとめ
これで複数サイトでもテーマ内のすべての php ファイルを統合することができました。
あとはスタイルシートも共通にすれば完璧ですね! まだスタイルシートの統合はしていませんが、いずれやろうと思っているのでうまくいったらまた解説します。