WPのpage.php

まっちー

まっちー

ここ最近、WordPressに触れる機会があったので、その話でも。

トップページやアーカイブ、カテゴリのページ、さらには個別記事のページなどは、デザインがデフォルトのままでも文句ないというのであれば、こちらは特に何もすることなく、管理画面に入って記事を更新するだけでいい。

でも記事の更新とは別に、固定のページを作りたいような場合、例えば自己紹介のページなどを作る場合があるとする。

まあこの場合も、WPの管理画面にある『ページ』って項目から新規追加を選んで、記事を更新するときと同じ要領で本文の中にページレイアウト的なものを書いて投稿すれば、ページを作ることができる。パーマリンクも自分で自由に編集することができる。
(僕が使ったのはversion2.8.4で、他のversionは触ったことがないので、他のも完全に同一かどうかは分かんないっす)

ただ、単純に自己紹介文を書くだけとかなら良いのだけど、もっと、他のテンプレートファイル同様にPHPコードをいっぱい記述したいとかなった場合、このやり方は都合がよくない。っていうか、無理(たぶん)。

そこでどうするか。

通常、個別記事に対応しているテンプレートファイルはsingle.phpなのだけど、ページから新規追加(あるいは編集)した場合は、page.phpがテンプレートになる。なので、page.phpを直接いじれば、PHPコード書き放題、ページ作り放題。自分でphpなりHTMLで作ったコードをpage.phpに直接書き込んでしまえば、あとは管理画面のページの新規追加でパーマリンクの設定だけしておいて、本文には何も書かないで公開すれば、自己紹介のページの出来上がり。パーマリンク設定のところで、一般的な設定を数字ベースにしておくのが良いかもしれない。

ただ、固定のページが1つだけならこれで良いけれど、2つ以上ある場合、例えば自己紹介のページの他に自分の作った作品を公開しているようなページがあるような場合、新規追加でいくつページを作ろうとも、どのパーマリンクをクリックしても同じ自己紹介のページが表示されてしまう。何せテンプレートの中身をそういう風に書き換えてしまったから。

if文か何かで場合分けして書いてもいいけれど、固定のページが増えれば増えるほどソースが長くなるし、それはあまりよろしくないってことで、こんなときは、とりあえず自己紹介のページと作品公開のページをとりあえず別個に作って、themesフォルダの中に入れておく。ここでは仮に、自己紹介のページをprofile.php、作品公開のページをgaralley.phpとする。そしたらあとは、page.phpの中で必要に応じてそれぞれのファイルを読み込めばいいと思う。

自己紹介とギャラリーのページをそれぞれ

http://sample.net/profile

http://sample.net/garalley

としておく。

page.php内↓

<?php

switch(get_permalink()) {

 € € € case get_bloginfo('url').'/profile':

 € € € € € € € require_once 'profile.php';

 € € € € € € € €break;

 € € € €case get_bloginfo('url').'/garalley':

 € € € € € € € €require_once 'garalley.php';

 € € € € € € € €break;

}

?>

個人的に、こういうときはif文よりもswitch文の方が好きです。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

プログラマのまっちーです。酒が大好きです。ある一定量のお酒を飲むと壊れたレディオモードに入り、同じことを繰り返す癖があります。宜しくお願いいたします。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL