トップページでページ内リンクを実装している場合、下層ページだと遷移先のコンテンツがないため、ナビをクリックしても動かないといった事態が発生します。

下層ページではページ内リンクではなく、特定のリンク先を指定したい場合の対処法について解説します。

ページによってリンク先を変更する方法

php

<a href="
  <?php if ( is_front_page() ) : ?>
    #news
  <?php else: ?>
    <?php echo esc_url( home_url( '/' ) ); ?>news
  <?php endif;?>
">
  <span>news</span>
</a>

is_front_page()関数

is_front_page()は、表示ページがトップページかどうかを判別する関数です。
こちらを使用して、トップページのときのリンクと、それ以外のページのリンクをif文で条件分岐させます。

今回の場合は、href属性の中にif文を挿入します。

まとめ

ページ内リンクを実装する際は、下層ページのことも考慮して実装しましょう。