以前は、テーマ(通常はヘッダー.php)にトップページへのリンクを挿入するのが一般的でした:
<a href="<?php echo get_option('home'); ?>/" >
あなたのサイトのホーム・アドレスを指すリンクを生成します。 このアドレスは、末尾のスラッシュ「/」なしでWordPressにストアされるので、このコードも末尾のスラッシュを追加する。 これがないと、WordPressが内部的にリダイレクトしてしまい、ホームページをクリックするたびに二重アクセスが発生してしまう。
WPMLを使用している場合、ホームページアドレスは言語ごとに変更されます。 アドレスには、末尾のスラッシュ「/」がすでに含まれているものと、含まれていないものがある。 通常のトップページリンクのままだと、いくつかのトップページで末尾に「/」が二重につくことになる。 例えば、スペイン語のホームページはこのようになります:
example.com/es//
これを避けるには、WPML3.2以降で利用できる新しいフィルターを使うことをお勧めします、
wpml_home_url
. これは正しいホーム・アドレスを指し示し、自動的に正しい末尾のスラッシュを使用する。 例えば、次のような使い方ができる:
<?php $my_home_url = apply_filters( 'wpml_home_url', get_option( 'home' ) ); ?> <a href="<?php echo $my_home_url; ?>">Home</a>
以下はicl_get_home_urlフックの使用例である:
<a href="<?php echo icl_get_home_url() ?>" >
WordPressのネイティブフックを使ってホームURLを取得する
WordPressの進化に伴い、ネイティブフックのサポートも追加され、さらに使いやすくなりました。 例えば、WordPressのネイティブフックである
get_home_url()
や
home_url()
のようなネイティブフックは、デフォルトで言語ごとに URL フィルターをかけます。 つまり、このように直接使うことができる:
<?php echo esc_url( home_url( '/' ) ); ?>Home</a>
のような他のWordPressフックに注意してください。
サイト_url()
,
get_option(‘home’)
そして
get_option(‘siteurl’)
は自動的にフィルターされません 。 これらのフックを使う場合は、サイトのホームアドレスを翻訳するためにwpml_home_url フィルターを使用してください。