WordPressでマルチサイトを構築しているときの各種URL取得例一覧をまとめました。
サブサイトからメインサイトのアドレスを参照することも可能です。
マルチサイトでサイト情報を取得する
サイト情報取得用のテンプレートタグをマルチサイトで使うときの取得例です。関数によってスラッシュあるものとないものがあるので気をつけて下さい。
なお、マルチサイトにはサブドメイン型とサブディレクトリ型があります。必要に応じて読み替えて下さい。
サイト情報取得用テンプレートタグ
| ホーム | home_url() | http://site2.example.com http://www.example.com/site2 |
| ホーム(取得) | get_home_url() | http://site2.example.com http://www.example.com/site2 |
| サイト | site_url() | http://site2.example.com http://www.example.com/site2 |
| サイト(取得) | get_site_url() | http://site2.example.com http://www.example.com/site2 |
| ネットワークホーム | network_home_url() | http://www.example.com/ |
| ネットワークサイト | network_site_url() | http://www.example.com/ |
「ネットワーク~」はサブサイトに対してメインのアドレスを返します。 wp-config.php で指定した基本のサイトが参照されます。
define(‘DOMAIN_CURRENT_SITE’, ‘www.example.com’);
マルチサイトで管理用アドレスを取得する
管理ページ取得用テンプレートタグの出力例一覧です。
ちなみにWordPressのマルチサイトは仮想的なURLを作って別サイトのように見せています。/wp-content/ をはじめとした実際の管理用ディレクトリはメインサイトと共用である点に注意して下さい。
特にサブディレクトリ型サブサイトにおける管理ディレクトリはメインサイトと同じ階層となります。
管理ページ取得用テンプレートタグ
| 管理者管理用ページ | user_admin_url() | http://www.example.com/wp-admin/user/ |
| ネットワーク管理ページ | network_admin_url() | http://www.example.com/wp-admin/network/ |
| ユーザ登録 | wp_registration_url() | http://site2.example.com/wp-login.php?action=register http://www.example.com/site2/wp-login.php?action=register |
| ログイン | wp_login_url() | http://site2.example.com/wp-login.php http://www.example.com/site2/wp-login.php |
| ログアウト | wp_logout_url() | http://site2.example.com/wp-login.php?action=logout&_wpnonce=xxxxxxxxxx http://www.example.com/site2/wp-login.php?action=logout&_wpnonce=xxxxxxxxxx |
テーマディレクトリ取得用テンプレートタグ
| themes | get_theme_root_uri() | http://site2.example.com/wp-content/themes http://www.example.com/site2/wp-content/themes |
| 現在のテーマ | get_stylesheet_directory_uri() | http://site2.example.com/wp-content/themes/theme_child http://www.example.com/site2/wp-content/themes/theme_child |
| 現在の親テーマ | get_template_directory_uri() | http://site2.example.com/wp-content/themes/theme_parent http://www.example.com/tech/wp-content/themes/theme_parent |
| 現在のCSS | get_stylesheet_uri() | http://site2.example.com/wp-content/themes/tdeme_child/style.css http://www.example.com/site2/wp-content/themes/tdeme_child/style.css |
おわりに
…ということで、マルチサイトにおけるURL取得テンプレートの動作メモでした。
ディレクトリ構成などをカスタマイズしすぎるとパスを通しづらくなるので、現在地を確認しながら作業すると良いと思います。

WordPressのURL取得用テンプレートタグまとめ
WordPressでget_home_url(‘/’)を使うと不具合が出る
コメントをどうぞ(´ω`*)