成果物をまとめて確認する
[成果物]WordPressの標準メニュー機能でナビゲーションを効率管理しよう!
【WordPressの標準メニュー機能でナビゲーションを効率管理しよう!】の成果物です。投稿の学びを終えた時点の構成を一覧でご確認いただけます。
前回の記事では、header.phpとfooter.phpによる共通部の外部ファイル化を実現し、効率的なテンプレート管理を構築しました。これにより、ヘッダーとフッターの修正が一箇所で完了するようになりました。
しかし、現在のナビゲーションには新たな課題があります。メニューの追加や並び替えのたびに、header.phpのHTMLコードを直接修正する必要があり、技術的知識のない管理者では対応できません。
今回の目標
wp_nav_menu()
関数による動的メニュー表示この記事では、WordPressの標準機能を活用して、コードを触らずに管理画面からナビゲーションを管理する方法を学習します。
目次
現在、header.phpのナビゲーションは以下のようにHTMLで直接記述されています。
<header>
<h1><?php the_title(); ?></h1>
<ul>
<li><a href="<?php echo home_url(''); ?>">トップ</a></li>
<li><a href="<?php echo home_url('about'); ?>">会社概要</a>
<ul>
<li><a href="<?php echo home_url('about/history'); ?>">沿革</a></li>
<li><a href="<?php echo home_url('about/access'); ?>">アクセス</a></li>
</ul>
</li>
<li><a href="<?php echo home_url('service'); ?>">サービス</a></li>
<li><a href="<?php echo home_url('voice'); ?>">お客様の声</a></li>
<li><a href="<?php echo home_url('contact'); ?>">問い合わせ</a></li>
</ul>
</header>
PHPこの方法では、以下のような問題があります。
ul
タグを手動で修正する必要がある例えば、前回の記事で「お客様の声」ページを追加する場合、header.phpを直接編集する必要がありました。
それでは、WordPressの管理画面からメニューを作成してみましょう!
WordPressでは、メニュー機能はデフォルトで無効化されています。
テーマでメニュー機能を使用するには、明示的に有効化する必要があります。
functions.phpファイルでメニュー機能を有効にします。
functions.phpは、WordPressテーマ開発において最も重要なファイルの一つです。
functions.phpを扱えてこそプロと言われるほど、WordPressテーマの機能拡張において中心的な役割を果たします。
functions.phpは、テーマ専用の機能拡張ファイルです。
functions.phpは重要なファイルなので、記述に間違いがあると、サイト全体がエラーになります。
編集する際は十分に注意してください。
💡 安心してください: 今回はローカル環境での学習なので、もしエラーが発生しても本番サイトに影響はありません。恐れずに進みましょう!
sample-themeフォルダ内にfunctions.php
ファイルを作成します。
sample-theme
├── front-page.php
├── header.php
├── footer.php
├── kaisha.php
├── page.php
├── page-contact.php
├── functions.php ← 新規作成
├── index.php
└── style.css
functions.phpに以下のコードを記述します。
<?php
// 外観→メニューの有効化
add_theme_support( 'menus' );
?>
PHPファイルを保存したら、再度管理画面→外観を確認してみましょう。
それでは今度こそ、管理画面→外観→メニューからナビゲーションメニューを作成します。
header.phpファイルを開き、ul
タグで作られた既存のナビゲーション部分を削除します。
<ul>
<li><a href="<?php echo home_url(''); ?>">トップ</a></li>
<li><a href="<?php echo home_url('about'); ?>">会社概要</a>
<ul>
<li><a href="<?php echo home_url('about/history'); ?>">沿革</a></li>
<li><a href="<?php echo home_url('about/access'); ?>">アクセス</a></li>
</ul>
</li>
<li><a href="<?php echo home_url('service'); ?>">サービス</a></li>
<li><a href="<?php echo home_url('voice'); ?>">お客様の声</a></li>
<li><a href="<?php echo home_url('contact'); ?>">問い合わせ</a></li>
</ul>
PHP削除した部分に、以下のコードを追加します。
<?php wp_nav_menu('header-menu'); ?>
PHPwp_nav_menu()
関数についてul
・li
タグで生成<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php the_title(); ?></title>
</head>
<body>
<header>
<h1><?php the_title(); ?></h1>
<?php wp_nav_menu('header-menu'); ?>
</header>
<main>
PHPファイルを保存します。
実際に管理画面からメニューを編集してみましょう。
順番が正しく入れ替わっていることを確認できます。
WordPressの標準メニュー機能を使用することで、以下のような利点があります:
add_theme_support( 'menus' )
wp_nav_menu()
関数でメニューを表示WordPressの標準メニュー機能を活用することで:
functions.phpを扱えるようになることは、WordPressテーマ開発において重要な節目です。
今回学習したメニュー機能の有効化は、functions.phpの基本的な使い方の入門編にすぎません。
より高度な機能(カスタム投稿タイプ、アイキャッチ画像、独自フック)も、すべてfunctions.phpで実装します。
現在のナビゲーションは縦に並んだリスト表示になっています。
一般的なWebサイトでは、ナビゲーションは横並びで表示されることが多いです。
そのためには、まずスタイルシート(CSS)を適用する必要があります。
現在のナビゲーションは縦に並んだリスト表示になっています。横並びにするにはCSSの適用が必要です。
でも、スタイルシートを読み込む前にやるべきことがあります。
現在のテーマは正常に動作していますが、WordPressの機能をフル活用するためには、WordPress標準のヘッダー・フッターの読み込み機能が不可欠です。
現在のheader.phpとfooter.phpには、以下の関数が実装されていません。
wp_head()
:WordPressがヘッダー部分で必要な処理を実行wp_footer()
:WordPressがフッター部分で必要な処理を実行これらの関数がないと、WordPressの多くの機能が制限されてしまいます。
特に、今後実装予定のスタイルシートの適切な読み込みには、これらの関数が不可欠です。
次回は、これらの関数を実装し、WordPressの機能をフル活用できるテーマに改良します。
今回学習したWordPressメニュー機能は、プロフェッショナルなテーマ開発では必須の機能です。
また、functions.phpの基本的な使い方を理解することで、より高度なWordPressテーマ開発への道筋が見えてきます。
管理画面からコードを触らずにサイトを管理できる仕組みを作ることが、WordPressテーマ開発の重要な目標の一つです。
この記事で作成した成果物は、以下のページでまとめて確認することができます。
WordPressテーマ開発における「部分テンプレート」の概念を実践的に学習。テンプレートファイルの共通部分を外部ファイル化することで、コードの重複を排除し、保守性の高いテーマ構造を構築する方法を解説します。効率的なテンプレート管理とメンテナンス性の向上を実現する、プロフェッショナルなテーマ開発に必須の技術を習得しましょう。
標準のヘッダー・フッター機能を実装し、WordPressの機能をフル活用できるテーマに改良する方法を解説します。管理画面での設定がWebページで正しく反映される環境を構築し、プロフェッショナルなテーマへと進化させます。
WordPressを効率よく確実に学ぶためには、学習の順序が大切です。知識が自然に積み上がるよう、学習ステップに沿って記事を順番に並べています。
学習ストーリー第40話まで掲載中