home_url()
は、WordPressサイトのトップページURLを取得するためのテンプレートタグです。WordPressがどのURLから訪問者に表示されるかを取得する際に使用します。get_site_url()
と異なり、WordPressがインストールされている場所ではなく、サイトのフロントエンドURLを返します。
機能の説明
home_url()
は、サイトのホーム(トップページ)URLを取得するための関数です。このURLは「一般設定」で設定される「サイトアドレス」に基づいて返されます。
- サブディレクトリ型のインストールでは、
https://example.com/blog/
のようなURLを返します。 - 独自ドメインを使ったサイトでは、トップページのURLを正確に取得できます。
シンプルなコード例
echo home_url();
出力例
https://example.com
使い方の解説
home_url()
は、必要に応じてパスやスキーム(http/https)を指定することもできます。
引数
$path
(任意): URLの後ろに追加するパス(例:'about'
)。$scheme
(任意): URLのスキーム(http
、https
、relative
)。デフォルトはnull
で、設定に従います。
トップページのURLを取得する例
echo home_url();
このコードは、https://example.com
のように、サイトのホームURLを取得します。
特定のパスを追加する(例:about
ページへのURLを取得)
echo home_url('about');
このコードは、https://example.com/about
のように、トップページURLの後にabout
を追加したURLを取得します。
スキームを https
に指定する
echo home_url('', 'https');
このコードは、https://example.com
のように、HTTPSでのURLを取得します。
特定の投稿のパスを取得する
$post_slug = 'my-post';
echo home_url($post_slug);
このコードは、https://example.com/my-post
のように、特定の投稿へのURLを取得します。
一緒に使うことが多い関連タグ
get_site_url()
get_site_url()
は、WordPressがインストールされているディレクトリのURLを取得します。
echo get_site_url();
このコードは、WordPressのインストールURLを取得します。例えば、https://example.com/wordpress/
のようなURLです。
admin_url()
admin_url()
は、WordPressの管理画面へのURLを取得します。
echo admin_url();
このコードは、https://example.com/wp-admin/
のような管理画面のURLを取得します。
使用例: home_url()
と get_site_url()
の使い分け
echo 'ホームURL: ' . home_url(); // https://example.com/
echo 'インストールURL: ' . get_site_url(); // https://example.com/wordpress/
home_url()
はサイトのホームURLを取得し、get_site_url()
はインストールディレクトリのURLを取得します。
追加情報を取得したい場合
複数のスキームを動的に切り替える
特定の条件に応じて、HTTPまたはHTTPSのURLを出力できます。
if (is_ssl()) {
echo home_url('', 'https');
} else {
echo home_url('', 'http');
}
このコードは、SSL接続(HTTPS)かどうかを確認し、適切なスキームでURLを出力します。
get_permalink()
で取得できる情報
echo get_permalink(42); // 投稿ID 42 のURLを取得
出力できる情報
- URL: 投稿のパーマリンク(例:
https://example.com/my-post/
) - 投稿ID: パラメータを指定して特定の投稿URLを取得可能
想定されるトラブル
home_url()
が間違ったURLを返す
「サイトアドレス(URL)」が誤って設定されている場合があります。
解決策
WordPressの「一般設定」で正しいURLが設定されているか確認してください。
URLにHTTPが使われている(HTTPSではない)
SSL設定が正しく反映されていない可能性があります。
解決策
- WordPressの「一般設定」でHTTPSのURLが設定されているか確認する。
- テンプレートタグにスキームを指定する。
echo home_url('', 'https');
Q&A
まとめ
home_url()
は、サイトのトップページURLを取得するための重要なテンプレートタグです。get_site_url()
との違いを理解し、サイトの構造に応じて使い分けることが重要です。また、パスやスキームを柔軟に指定することで、特定のページやHTTPS対応URLの取得も可能になります。
コメント