はじめに
特定のページにあるリンクをクリックした際、別の固定ページへ移動するだけでなく、そのページ内の特定の「タブ」ブロックの指定タブを自動的に開いた状態で表示します。
この記事では、この方法について説明します。
完成イメージ
- デンジ
- レゼ
- パワー
みんな偉い夢持ってていいなア!!じゃあ夢バトルしようぜ!夢バトル!!
デンジ君はさ、田舎のネズミと都会のネズミ、どっちがいい?
おうおう!ひれ伏せ人間!!ワシの名はパワー!バディとやらはウヌか!?
別ページからフッターのリンクをクリックしてください。
実装手順
以下の手順で実装します。
- ラベルGutenbergエディターでの設定

Gutenbergエディター 以下の手順で設定します。
- 「タブ」ブロックの高度な設定で、HTMLアンカーに例えば
tab1と入力します。 - リンク設定で、ジャンプ先のページURLの後ろに
#tab1-1のように開きたいタブ番号をHTMLアンカーの後ろに追加します。
https://example.com/page/#tab1-1 - 「タブ」ブロックの高度な設定で、HTMLアンカーに例えば
- ラベルJavaScriptを追加
以下のコードをjavascript.jsに追加します。
jQuery(function ($) { /** * 指定されたハッシュ値に基づいて該当するタブを開きスクロール * @param {string} url - URLまたはハッシュ文字列 */ function openTabByHash(url) { if (!url) { return; } // URLからハッシュ部分を取得 const hash = url.includes('#') ? '#' + url.split('#')[1] : url; // ハッシュからタブ番号を抽出 const parts = hash.split('-'); const $block = $(parts[0]); const tabIndex = parts[1] ? parseInt(parts[1], 10) - 1 : 0; // 該当タブの場合、タブを開いてスクロールする if ($block.length) { $block.find('.tab-label').eq(tabIndex).trigger('click'); $(window).scrollTop($block.offset().top); } } // 別ページからハッシュ付きで移動した場合 $(window).on('load', function () { openTabByHash(window.location.hash); }); // ハッシュ付きリンクをクリックした場合 $(document).on('click', 'a[href*="#tab"]', function () { openTabByHash($(this).attr('href')); }); });
さいごに
今回紹介した方法を使えば、「タブ」ブロックでページ内リンクだけでなく、別ページからでも指定タブを自動で開くことができます。
リンクをクリックするとスクロールとタブ切り替えが同時に行われ、ユーザーにとってわかりやすく便利なナビゲーションを実現できます。

