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の取得も可能になります。
コメント