WordPress site_url()とhome_url()の違いと使い分け

site_url()home_url() でURLを取得できるが、紛らわしいのでメモ。

管理画面の一般設定で「WordPressアドレス」と「サイトアドレス」を確認しておく

WordPressアドレスとは、WordPressのシステム(コアファイル)がインストールされている場所のURL。

サイトアドレスとは、サイト(のホーム)を表示・閲覧するためのアドレス。

WordPressには、「ドキュメントルート以外の専用ディレクトリにWordPressをインストールしたいが、ルートのURLを使いたい」ということを実現する機能がありますが、その場合には上記WordPressアドレスとサイトアドレスは別のものとなります。

ドキュメントルートに設置している場合は、両者は基本同じものになってるはず。でも、だからと言ってどっちでもいいやっていうのは気持ち悪いので、一応、どっちを使うべきなのか考えておくことにする。

site_url()

一般設定の「WordPressアドレス」に入力されたURLを取得する。つまりWordPressがインストールされている場所のURL。

単体で site_url() が使われる場面はかなり限定的かと思われる。なぜなら、大抵のディレクトリへのURLを取得する専用テンプレートタグが用意されているため。

home_url()

一般設定の「サイトアドレス」に入力されたURLを取得する。つまりサイトのホーム(トップページ)のURL。こちらは UI
上の ホームに戻るボタンやサイトのロゴにつけられる a タグなどに使われる。

基本的に、サイト内のページ遷移のためのリンクに使われるのは全て home_url() と考えてよい。

まとめ

通常は home_url() だけ使ってればよい。site_url() はなんか特殊なことやろうとしたときのみ必要になるかもしれないが、ほぼ忘れててもいい。