Go to top Go to bottom

サイトのURLを取得するには、home_url()を使用します。似たような関数にsite_url()があるので注意してください。

用例
  • サイトのURLを取得して、サイト名をクリックしたらトップページに戻るようにする
関連
Codex

サイトのURLを取得する

サイトのURLを取得するには次のようにします。

<?php $url = home_url(); ?>

この関数はURLを文字列として返すだけなので、出力するにはechoする必要があります。たとえばサイト名にトップページへのリンクを付けるには、次のように実装します。

<h1>
  <a href="<?php echo esc_url( home_url( '/' ) ); ?>">
    <?php bloginfo( 'name' ); ?>
  </a>
</h1>

2行目が実際にURLを出力している箇所です。home_url()はURLの最後にスラッシュを付けませんので、home_url( '/' )とすることでスラッシュを付加しています。また、タグの属性として不適切な文字列が入らないよう、esc_url()を用いてURLを無害化しています。href属性をPHPで生成するときは、常にesc_url()を使うことをおすすめします。

また、3行目のbloginfo( 'name' )サイトのタイトルを出力する命令です。

廃止された取得方法bloginfo( 'home' )

以前はサイトのURLを出力するのに、bloginfo( 'home' )を使用していましたが、この使い方は廃止されましたので注意してください。bloginfo()そのものはサイトのタイトルやキャッチフレーズを取得する使い道で、現在も有効です。

トップページ以外のURLを取得する

トップページ以外のURLを取得するには、home_url()に引数を渡すことで実現できます。

<?php $about_url = home_url( '/about/' ); ?>

こうすると、たとえば’http://sample-site.com/about/’のようなURLを取得することができます。

似た関数site_url()に注意

home_url()がトップページのURLを返すのに反し、site_url()WordPressがインストールされている場所を返します。これらは同一の場所を指し示す場合もありますが、WordPressをサブフォルダなどの別の場所にインストールしている場合は一致しません。