WordPressのhome_url()とsite_url()の違いを調べてみた

サムネイル WordPress

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()を使うといいと思います。

詳しくは以下の記事が参考になります。

>>WordPressでよく見かけるけどよくわからない関数 esc_urlについて

 

それと、echoを忘れないようにしてください(地味にハマりポイントです!)

URLが出力されなかったらechoがちゃんと入っているかまず確認しましょう。