はじめに
グローバルナビゲーションメニューに独自のメニューを追加し、JIN風の検索機能を追加します。
検索ボタンをクリックすると、入力フォームが表示される仕組みです。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下の手順で実装します。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
add_filter('wp_nav_menu_items', function ($items, $args) { // メニュー位置「ヘッダーメニュー」以外の場合(PC表示のみ) if ($args->theme_location !== NAV_MENU_HEADER || strpos($args->menu_class, 'menu-pc') === false) { return $items; } // 検索テンプレートを取得 ob_start(); get_search_form(); $html = ob_get_clean(); $items .= "<li>{$html}</li>"; return $items; }, 10, 2); - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
#navi-in { .search-box { height: 49px; margin: 0; position: relative; } .search-edit { background-color: #eee; border: none; opacity: 0; position: absolute; right: 0; transition: all 0.6s; width: 40px; z-index: 5; &:focus { opacity: 1; outline: 0; width: 100%; } } }
参考:モバイルと同じ検索ボタンを追加する方法
モバイル用の検索ボタンテンプレートを流用し、PCヘッダーにも同じ検索ボタンを追加します。
完成イメージ

実装手順
以下の手順で実装します。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
add_filter('wp_nav_menu_items', function ($items, $args) { // メニュー位置「ヘッダーメニュー」以外の場合(PC表示のみ) if ($args->theme_location !== NAV_MENU_HEADER || strpos($args->menu_class, 'menu-pc') === false) { return $items; } // 検索テンプレートを取得 ob_start(); cocoon_template_part('tmp/mobile-search-button'); $html = ob_get_clean(); // ID、for属性、クラス名を変更 $html = str_replace('search-menu-', 'search-pc-', $html); $items .= $html; return $items; }, 10, 2); - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
/* PC用検索メニューのコンテンツ初期状態 */ .search-pc-content { left: 5%; opacity: 0; position: fixed; right: 5%; top: 50%; transform: translateY(1500%); transition: 0.3s ease-in-out; width: 90%; z-index: 99; } /* PC用検索メニューの閉じる用薄黒カバー */ #search-pc-close { background: black; display: none; height: 100%; left: 0; position: fixed; top: 0; transition: 0.3s ease-in-out; width: 100%; z-index: 99; } /* チェックが入ったらコンテンツを表示 */ #search-pc-input:checked ~ #search-pc-content { opacity: 1; transform: translateY(0%); transition: 0.3s ease-in-out; } /* チェックが入ったらカバーを表示 */ #search-pc-input:checked ~ #search-pc-close { display: block; opacity: 0.5; } .search-pc-button { align-content: center; } .search-pc-caption { display: none; }
さいごに
今回紹介した方法を使えば、グローバルナビゲーションメニューに検索機能を追加し、JIN風のデザインを実装できます。
検索ボタンをクリックすると入力フォームが表示されるため、省スペースでスタイリッシュな検索機能を実現できます。
デザインやアニメーションをカスタマイズすることで、よりサイトの雰囲気に合った検索フォームに仕上げることも可能です。

