テーマを一から作成する 第8回目
前回は月別アーカイブページを作成しました。今回は、固定ページを作成します。
第7回目
スポンサーリンク
今回作成する固定ページの構成は、基本的にindex.phpと変わりません。「記事」の部分に固定ページの内容を表示させます。
固定ページを作成するテンプレートは、以下の6つあります。
1 カスタムテンプレート
2 page-スラッグ名.php
3 page-ID番号.php
4 page.php
5 singular.php
6 index.php
固定ページには作成したそれぞれのページに対して、利用するテンプレートを選択する機能があります。今回は「自己紹介」「アクセス」「お問い合わせ」の3つの個別ページを作成し、「お問い合わせ」ページだけカスタムテンプレートを用意して、それ以外はpage.phpを利用するようにします。
今回作成した3つの固定ページ一覧
カスタムテンプレートを作成する
適当な名前のPHPファイル(今回はinquiry.php)を作成したら、テーマディレクトリ(/wp-content/themes/sample/以下)にアップロードして下さい。アップロードしたファイルの先頭に下記のようにコメントを記述して下さい。すると固定ページ作成時にテンプレートの選択ができるようになり、「お問い合わせ」が表示されるようになります。
作成したカスタムテンプレートにテンプレート名を記述する。
1 2 3 4 5 |
<?php /* Template Name: お問い合わせ */ ?> |
固定ページ作成画面でテンプレートが選択できるようになるので、「お問い合わせ」の編集画面にてテンプレートを「お問い合わせ」に設定する。
「自己紹介」「アクセス」で利用するpage.phpテンプレートも、テーマディレクトリ(/wp-content/themes/sample/以下)にアップロードして下さい。テーマ編集画面においても「個別投稿ページ」「お問い合わせ 固定ページテンプレート」と表示されているのが分かります。
inquiry.phpとpage.phpにはそれぞれ下記のコードを記述します。
inquiry.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php /* Template Name: お問い合わせ */ ?> <?php get_header(); ?> <main> <p>inquiry.phpテンプレートを利用しています。</p> <?php if(have_posts()): while(have_posts()):the_post(); ?> <h1><?php the_title(); ?></h1> <time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y.m.d'); ?></time> <p><?php the_content(); ?></p> <?php endwhile; endif; ?> </main> <?php get_sidebar(); ?> <?php get_footer(); ?> |
11行目において、実験的にinquiry.phpテンプレートを利用していることを明示しています。もしinquiry.phpファイルが無い場合には、「お問い合わせ」ページはpage.phpが利用されます。
page.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php get_header(); ?> <main> <p>page.phpテンプレートを利用しています。</p> <?php if(have_posts()): while(have_posts()):the_post(); ?> <h1><?php the_title(); ?></h1> <time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y.m.d'); ?></time> <p><?php the_content(); ?></p> <?php endwhile; endif; ?> </main> <?php get_sidebar(); ?> <?php get_footer(); ?> |
サイドバー(sidebar.php)に固定ページへのリンクを表示させておきました。
sidebar.php
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<aside> <P>固定ページ</p> <ul> <?php wp_list_pages('title_li='); ?> </ul> <p>月別</p> <ul> <?php wp_get_archives(); ?> </ul> </aside> |
wp_list_pagesタグで固定ページ一覧を表示させています。
画面にて固定ページ一覧が表示されるようになりました。
お問い合わせページはinquiry.phpテンプレートを利用しているのが分かります。
今回作成したテーマファイルは以下のリンクからダウンロードできます。
次回はカスタムメニューを作成します。
第9回目
カスタムメニューを作成する[add_theme_support][wp_nav_menu]
おすすめ関連ページ
参照ページ
WordPress
Codex日本語版
wp_list_pages