WordPressをいじってたある日、home_url()
とsite_url()
という2つの関数を見つけました。
「どう違うねん…」と思ったので自分で調べてみました。
home_url()とsite_url()の違い
- home_url():サイトのURL
- site_url():WordPressがインストールされている場所のURL
例えば「https://example.com/wp」にWordPressがインストールされているとします。
home_url()とsite_url()で取得できる値は
- home_url():https://example.com
- site_url():https://example.com/wp
という感じです。
要するに、基本的にはhome_url()を使い、WordPressがサブディレクトリにインストールされているならsite_url()を使いましょうということです。大体はhome_url()
で事足りると思います。
ちなみにhome_url()
もsite_url()
も出力されるとき末尾にスラッシュ「/」はつきません。スラッシュをつけたい場合はhome_url('/')
と書きましょう。
home_url()とsite_url()の使い方
以下のように使うとホームのURLを表示できます。
<?php echo esc_url( home_url('/'); ) ?>
esc_url()
はURLをエスケープする関数です。
万が一URLに悪意のあるスクリプトが混ざっている場合そのまま実行されてしまうので、セキュリティ対策としてesc_url()
を使うといいと思います。
それと、echoを忘れないようにしてください(地味にハマりポイントです!)
URLが出力されなかったらechoがちゃんと入っているかまず確認しましょう。