LESSON / WP LOAD

固定ページ・投稿一覧・メニューを実装する

管理画面の内容を使い、トップ、固定ページ、投稿一覧、投稿詳細、ナビゲーションを実装します。

目安 120分 コース進捗 0 / 17

GOAL

このレッスンでできるようになること

  • 主要なページテンプレートを実装できる
  • 管理画面で編集できるメニューを表示できる

ここでは、管理画面へ登録した内容を使ってサイトの主要ページを作ります。テンプレートへ文章を直書きせず、投稿や固定ページの内容を表示します。

管理画面で変更する内容を決める

管理画面で編集する内容が、公開画面のどの場所へ表示されるか先に整理します。

WordPress管理画面の固定ページ、投稿、メニューと公開サイトの対応
WordPress管理画面の固定ページ、投稿、メニューと公開サイトの対応

テーマへ文章やURLを直接書くと、更新のたびにコード編集が必要になります。サイト名、本文、投稿、メニューなど、運用中に変わる内容はWordPressの管理画面から更新できるようにします。

一方で、ページのレイアウトや共通装飾はテーマで管理します。内容と見た目を分けると、運営者が誤ってレイアウトを壊す範囲も小さくできます。

必要なテンプレートを作る

次の画像は、「必要なテンプレートを作る」で扱うコードや構成をブラウザで表示した結果です。

「必要なテンプレートを作る」で扱うコードや構成の表示結果
「必要なテンプレートを作る」で扱うコードや構成をブラウザで表示した結果
my-original-theme/
├── front-page.php
├── home.php
├── single.php
├── page.php
└── 404.php

固定ページをテンプレートへ反映する

固定ページでは、管理画面で入力したタイトルと本文をテンプレートから出力します。本文には段落、見出し、画像、リストなどが入るため、実際のブロックを使って表示を確認してください。

特定の固定ページだけレイアウトを変える場合は、専用テンプレートを作る前に共通化できる部分を確認します。ページごとに似たファイルを増やすと、共通修正の漏れが起こります。

投稿一覧と詳細ページをつなぐ

一覧にはタイトル、日付、抜粋、アイキャッチ画像などを表示し、各投稿のパーマリンクへ移動できるようにします。詳細ページでは本文だけでなく、一覧へ戻る導線や前後の記事への導線も検討します。

  • 画像がない投稿の代替表示を用意する
  • タイトルの見出しレベルをページ構造に合わせる
  • 公開日と更新日のどちらを表示するか決める
  • カテゴリーや著者を表示する必要があるか決める
  • 一覧が増えたときのページ送りを用意する

投稿一覧へリンクを表示する

次の図では、「投稿一覧へリンクを表示する」の仕組みや関係を確認できます。

「投稿一覧へリンクを表示する」の仕組みや関係を示す図
「投稿一覧へリンクを表示する」の仕組みと関係
<?php while (have_posts()) : the_post(); ?>
  <article>
    <h2>
      <a href="<?php the_permalink(); ?>">
        <?php the_title(); ?>
      </a>
    </h2>
    <?php the_excerpt(); ?>
  </article>
<?php endwhile; ?>

ナビゲーションメニューを管理画面から変更する

テーマ側でメニューの表示場所を登録し、管理画面で作ったメニューをその場所へ割り当てます。これにより、ページ追加や並び替えのたびにHTMLを編集する必要がなくなります。

メニューが未設定の場合に空白になるのか、代替表示を出すのかも確認します。スマートフォンの開閉ボタンはキーボードでも操作でき、現在の開閉状態を支援技術へ伝えられるようにします。

メニューを登録する

次の図では、「メニューを登録する」の仕組みや関係を確認できます。

「メニューを登録する」の仕組みや関係を示す図
「メニューを登録する」の仕組みと関係
function my_theme_setup() {
  register_nav_menus(array(
    'primary' => 'メインメニュー',
  ));
}
add_action('after_setup_theme', 'my_theme_setup');

header.phpへメニューを表示する

次の図では、「header.phpへメニューを表示する」の仕組みや関係を確認できます。

「header.phpへメニューを表示する」の仕組みや関係を示す図
「header.phpへメニューを表示する」の仕組みと関係
<?php
wp_nav_menu(array(
  'theme_location' => 'primary',
  'container' => 'nav',
  'container_class' => 'site-navigation',
));
?>

トップページを組み立てる

トップページは、管理画面で設定した固定ページを使うのか、テーマ固有の構成にするのかを決めます。最新投稿を掲載する場合も、件数、並び順、カテゴリー、0件の場合の表示を決めてください。

各セクションの見出しとリンク先を確認し、同じページへ移動するリンクが不自然に重複していないか整理します。見た目だけでなく、サイト内を迷わず移動できる構造にします。

内容の違いで崩れないか確認する

長いタイトル、画像なし、複数カテゴリー、長文の固定ページを表示し、HTML構造とCSSが崩れないことを確認します。

完成確認

  1. 固定ページのタイトルと本文を管理画面で変更し、表示へ反映されるか確認する
  2. 投稿を追加し、一覧と詳細ページの両方を確認する
  3. メニューの順番を変更し、ヘッダーとフッターを確認する
  4. 画像なし、長い文章、0件の状態でも崩れないか確認する
  5. スマートフォン幅とキーボード操作でナビゲーションを確認する

CHECK POINT

完了条件