以前作成した固定ページはsingle.phpをほぼコピーしただけのシンプルなものでした。
しかし「固定ページによってレイアウトを変えたい!」という場合もあると思います。
こばゆた
例えば「お問い合わせ」ページと「アクセス」ページのレイアウトが同じだと変ですよね
きなこ
でもすでに作っちゃった場合どうしたらいいの?
こばゆた
テンプレートファイルにはテンプレート階層があってページごとの優先順位がつけられているんだよ
それを使うことで自分の表示させたいページをある程度自由に出すことができるんだ
もちろん固定ページだけじゃないけど今回は固定ページを例にやっていくよ
1.テンプレート階層
こちらがテンプレート階層の図です。
http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4
この図の左側に行くほど方優先順位が高いので
“page-スラッグ名.php” > “page-記事id.php” > page.phpになっています。
つまり“page-スラッグ名.php”か”page-記事id.php”を使うことで通常の固定ページよりも優先して表示されるということになります。
2.固定ページを作成する
今回は前者の”page-スラッグ名.php”で作成していきます。
- STEP1専用の固定ページを作成する「ごあいさつ」のスラッグ名は”greet”なので”page-greet.php”という形で新規ファイルを作成します。
- STEP2ページの中身を作成するその中身に別に用意したHTMLファイルをコピーして入れます。
するとまだタグを埋め込んでいないので、見た目がデフォルトのままですが、他の固定ページとは異なる動きになったことがわかります。
- STEP3タグを埋め込む復習にはなりますが、共通パーツや画像のところにタグを埋め込みます。
index.php(トップページ)を作成した時の要領です!- ヘッダーが入っていた部分
<?php get_header(); ?>
- サイドバーが入っていた部分
<?php get_sidebar(); ?>
- フッターが入っていた部分
<?php get_footer(); ?>
- 画像ファイルの前に(/も忘れない様に)
<?php echo get_template_directory_uri(); ?>
通常の固定ページとはレイアウトの異なる固定ページができました。
- ヘッダーが入っていた部分
こばゆた
このようにテンプレート階層を使うとページの優先順位をつけることができるようになり、使いこなせれば自由に自分の表示したいページを出すことができる様になります。
コメント