- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
固定ページ
目次
はじめに
「ページ」または「WordPressページ」は投稿(ブログの記事)と似ていますが、さらにフレキシブルな使い方ができ、ブログの時系列順の外に置くことができます。ページを使って、任意の量のコンテンツを整理・管理することができます。このページ機能はバージョン1.5で追加されました。
さて、WordPressページは実際どのように動作するのでしょうか?ここでは、ページとは何かを説明し、ページを使ってできることの紹介や例を挙げてみます。
この記事内で使われている用語
さらに詳しい「ページ」という用語の使い方に関する話題については、「用語について」の欄をご参照ください。 |
WordPressページとは?
ブログの投稿は日時に深く関わったコンテンツです。公開された特定の日時が文脈を決定します。
「WordPressページ」はブログの投稿とは異なり、管理者やサイト自体についての情報を公開するためなどに使われます。こういった情報は日時とは深い関わりがなく、いつでも読んでもらえる内容となります。例えば、ある日の朝にしたことや思ったこと(例:「今日の朝ご飯はおいしかった」)を書くのには、ブログの投稿機能を使います。WordPressページには、特定の日や時間にしばられない内容(例:「このサイトでは朝ご飯に関する話題を書いています」)を書くのに使うと良いでしょう。
もちろん、あなたの WordPress はあなたのもの。どんなふうに使ってもかまいません。WordPressページを使えば、ブログの外側に置いておきたいどんな情報もサイトに加えることができます。楽しむことを忘れずに、実験したり、想像力を働かせたりして、あなたなりの使い方を見つけてください。
たとえば、ページ機能を使ってこんなコンテンツを公開することができます。
- コピーライトや法規に関する情報、再掲載の許可、管理人の連絡先、「管理人について」、「このサイトについて」、アクセシビリティ宣言
一般的にはWordPressページと投稿は似ていると言えるでしょう。どちらにもタイトルやコンテンツがあり、サイト表示テンプレートを使って全体のデザインやレイアウトとマッチさせることができます。しかしWordPressページには、投稿にはないユニークな機能があります。
WordPressページの簡単な説明
WordPressページとはこんなものです
- WordPressページは、投稿に比べると日時にあまり依存しません。
- WordPressページは、トップレベルのページとサブページに整理することができます。
- WordPressページでは、さまざまなテンプレートファイル、 テンプレートタグ、PHPコードなどを含む「ページテンプレート」を使うことができます。
WordPressページを誤解しないために
- WordPressページは投稿とは別物です。ブログのメインページでは表示されず、カテゴリーを割り振ることもできません。
- WordPressページは個別ファイルではありません。WordPressページのコンテンツは投稿と同じく、データベース内に保存されています。
- ページテンプレート内にテンプレートタグやPHPコードを書くことはできますが、WordPressページのコンテンツ内に書いても動作しません(注:コンテンツ内に書いたタグやPHPコードを実行したい場合、 RunPHP などのプラグインを使うと良いでしょう。投稿をフォーマットするためのプラグイン一覧も合わせてご参照ください)。
WordPressページを作成する
WordPressページを新規作成するには、まず、WordPress の管理画面にログインします。このとき使うユーザーIDに、新規ページ作成の権限が与えられていることが必要になります。ログインしたら、メニューの「投稿>ページ作成」クリックします。
WordPressページをサイト内からリンクする
WordPress では、wp_list_pages()というテンプレートタグを使って自動的にサイト内のWordPressページへのリンクをサイドバーなどに表示することができます。以下のように表示をカスタマイズさせたい場合は、このタグの使い方のドキュメンテーションを参照してください。
- WordPressページのリスト表示順を変更する(これをさらにカスタマイズするには、ページ作成・編集画面の「表示順」フィールドが役に立ちます)
- 特定のWordPressページをリストから除外する(表示させない)
- どのWordPressページをリスト内に表示するかをコントロールする(例:サブページのみを表示するなど)
- 何階層目まで表示するかをコントロールする
もちろん、WordPressページへ手動でHTMLリンクを貼ることもできます。例えばコピーライト情報のWordPressページをフッターからリンクしたい場合、以下のようにすればよいでしょう。
<a title="コピーライト情報" href="wordpress/?page_id=14">Copyright 1996-2006</a>
(パーマリンクを設定していない場合)
<a title="コピーライト情報" href="wordpress/copyright/">Copyright 1996-2006</a>
(パーマリンクを設定済みの場合)
注:WordPressページのパーマリンクを有効にするには、.htaccess ファイルを書き込み可能にするか、手動で更新する必要があります。
WordPressページを整理する
カテゴリーの下にサブカテゴリーを作成できるのと同じように、WordPressページの下にサブページを置いて階層を作成することができます。
たとえば、WordPressを使って旅行代理店のサイトを作っているとします。旅行先の紹介として各大陸に一つのWordPressページを作成し、それぞれの大陸に属する国のWordPressページをその大陸のサブページとして作成するとしましょう。全体では、以下のような構成になります(カッコ内は各ページの投稿スラッグを表しています)。
- アフリカ(Africa)
- カメルーン(Cameroon)
- レソト(Lesotho)
- スワジランド(Swaziland)
- トーゴ(Togo)
- 南米(South America)
- アルゼンチン(Argentina)
- ブラジル(Brazil)
- チリ(Chile)
実際にこのような構成にするには、まず親ページとなる「アフリカ」と「南米」のWordPressページを通常通りに作成します。その後、各国のWordPressページを作成するときに、ページ作成画面のサイドバーにある「親ページ」ドロップダウンメニューから属する大陸のWordPressページ名称を選択します。
上記の例の構成で、パーマリンクを設定済みの場合、カメルーンのWordPressページのリンク先は以下のようになります。
http://example.com/africa/cameroon/
デフォルトテーマのWordPressページテンプレート
デフォルトテーマ(Kubrick)には以下のWordPressページテンプレートが含まれています。
- page.php - デフォルトWordPressページテンプレート:WordPressページのコンテンツを表示します。
- archives.php - アーカイブページ用テンプレート:WordPressページのコンテンツを無視し、月別・カテゴリー別のアーカイブ一覧を表示します。
- links.php - リンクページ用テンプレート:WordPressページのコンテンツを無視し、 get_links_listタグを使ってリンクを表示します。
WordPressページを表示する際、どのテンプレートが使われますか?
それぞれのWordPressページで、特定のカスタムWordPressページテンプレートを選択することができます。その場合、現在使用中のテーマ内にあるデフォルトの page.php テンプレートは無視されます。特定のテンプレートを使ってWordPressページを表示するには、ページ作成・編集画面のサイドバーにある「ページテンプレート」ドロップダウンメニューから使いたいテンプレートの名称を選択します。 (注:使用中のテーマ内にWordPressページテンプレートが存在しない場合、サイドバーのドロップダウンメニューは表示されません)
WordPressは、使用中のテーマ内をスキャンしてWordPressページテンプレートを探します。以下の順で、一番最初に見つかったものを使ってWordPressページを表示します。
- 選択したカスタムWordPressページテンプレート
- page.php
- index.php
WordPressページテンプレートを作ってみよう
それぞれのWordPressページの表示を決定するテンプレートは、使用しているテーマのディレクトリ内に置きます。新規テンプレートを作るには、新しいファイルを作成することになります。mypage.php と名付けたファイルをテキストエディタで作成し、ファイルの先頭に以下のように書き込みましょう。
<?php /* Template Name: マイページ */ ?>
上記のコードは、この mypage.php というファイルが「マイページ」という名称のテンプレートであることを宣言しています。この名称は、ページ作成・編集画面でテンプレートを選択するときや、管理画面のテーマエディタで編集を行うときに表示されます。
拡張子が .php であれば、ファイル名はほぼ自由に名付けられます(使用すべきでないファイル名については、予約済みのテーマファイル名を参照してください。ここにある名前のファイルは、特定の目的のために使用されることになっています)。
上記の5行の宣言より下には テンプレートタグなどのコードを自由に書き込めます。そのコードにより、このテンプレートを選択したWordPressページの表示形式が決定されます。 page.php や index.php など既存のテンプレートの内容をコピーしてベースにしても良いでしょう。さらに、以下の例などを参考にしてページテンプレートを作成してみてください。作成したページテンプレートをテーマフォルダに置くだけで、ページ作成・編集画面にて選択できるようになります。
WordPressページとテンプレートの例
以下は、WordPressページテンプレートの一例です。
コンテンツつきアーカイブ一覧ページ
作成したWordPressページのコンテンツの下に、ブログ記事のアーカイブ一覧を表示するテンプレートを作ってみましょう。このテンプレートは「Kubrick」テーマに対応するようになっていますが、多少変更を加えれば他のテーマにも使えるはずです。
テキストエディタで新規ファイルを作成し、以下のコードをペーストして arc-cont.php として保存しましょう。ファイルの文字コードをインストールしたWordPressの設定と合わせることをお忘れなく。
<?php /* Template Name: コンテンツつきアーカイブ一覧 */ ?> <?php get_header(); ?> <div id="content" class="widecolumn"> <?php if (have_posts()) : while (have_posts()) : the_post();?> <div class="post"> <h2 id="post-<?php the_ID(); ?>"><?php the_title();?></h2> <div class="entrytext"> <?php the_content('<p class="serif">このページの続きを読む »</p>'); ?> </div> </div> <?php endwhile; endif; ?> <?php edit_post_link('この記事を編集', '<p>', '</p>'); ?> </div> <div id="main"> <?php include (TEMPLATEPATH . '/searchform.php'); ?> <h2>月別アーカイブ</h2> <ul> <?php wp_get_archives('type=monthly'); ?> </ul> <h2>カテゴリー別アーカイブ</h2> <ul> <?php wp_list_cats(); ?> </ul> </div> <?php get_footer(); ?>
CMSとしてのWordPress
バージョン1.5以降で追加されたページ作成機能とプラグインを組み合わせて使うことにより、WordPressを簡単なコンテンツ・マネジメント・ツールとして手軽に使うことができるようになりました。
WordPressページをトップページとして使う
Static Front Page Plugin(静的トップページプラグイン)を使えば、WordPressページをサイトのトップページとして固定させることも可能です。このプラグインを使うとトップページのクエリが変更され、「home」という投稿スラッグのWordPressページがトップページに表示されるようになります。
このプラグインを使ってWordPressページをサイトのトップページとして表示させる場合、使用中のテーマ内に home.php というファイルが存在すれば、これがトップページのテンプレートとして使われます。ただし、同じWordPressページにトップページ以外からアクセスした場合(http://example.com/home/)、標準のテンプレートが適用されます。
WordPressページをサイト内に挿入する
また、Improved Include Page(インプルーブド・インクルード・ページ)というプラグインを使って、WordPressページのコンテンツをサイト内の別の場所に挿入することもできます。こうすることによって、サイト内の要素を管理画面から簡単に編集することができます。
ブログをルート以外のディレクトリに表示させる
Wordpressサイトが http://example.com/ にインストールされていて、ブログのトップページを http://example.com/blog/ に置き、他のページは http://example.com/page1/ のような位置に表示させたいとします。
まず、サイトのトップページを作ります。http://example.com/ に表示したい内容に基づき、home.php というテンプレートをテーマ内に作成しましょう。次に、ブログのトップページ用テンプレートを作成します。テキストエディタで新規ファイルを作成し、以下のコードをペーストして blog.php として保存しましょう。ファイルの文字コードは、インストールしたWordPressの設定と合わせておきます。
<?php /* Template Name: ブログ */ ?> <?php query_posts('cat=-0'); //すべてのブログ記事を取得 load_template( TEMPLATEPATH . '/index.php'); //indexを読み込む ?>
管理画面にログインし、新規ページを作成します。タイトルを「ブログ」、投稿スラッグを「blog」、ページテンプレートを「ブログ」に設定します。
最後に、分かりやすいURLを表示させるためにパーマリンクの設定を変更しましょう。管理画面の「オプション>パーマリンク設定」をクリックし、「独自表記を以下の入力欄に記述 」のラジオボタンをクリックします。テキストフィールドに以下のように記入します。
/blog/%year%/%monthnum%/%postname%/
これで、ブログ記事のパーマリンクがすべて /blog/2006/11/17/post-name/ といった形式になります。
これで完了です!ユニークなトップページと、論理的な構造のブログコンテンツを持ったCMSが完成しました。
用語について
一般的に、ページには静的なものと動的に生成されるものがあります。静的ページは一度作成・保存されたら同じ状態で訪問者に表示されます。一方、動的ページは訪問者がページを見ようとするたびに新しく生成されます。この場合、ページの作者は「どんなデータを表示させるか」のみを特定しておき、実際に表示されるページは作成しません。
WordPressでは、WordPressページを含む大半の表示ページが動的に生成されています。投稿者が作成したコンテンツ(記事、コメント、ブログロールリンク、カテゴリー項目など)は MySQL データベースの中に保存されており、サイトにアクセスがあるとWordPressはデータベースに対し、現在使っているテーマ内のテンプレートをもとにしてデータのリクエストを行います。
静的ページの例としては、PHP コードなどを含まない HTML 文書が挙げられます。例えば、「管理者について」という100%静的なHTMLファイルを作って aboutl.html として保存し、サイト内からリンクすることもできますが、これはあまりメンテナンスしやすいとは言えません。WordPress の設定やテーマ内のテンプレートに変更を加えたりした際に、その変更はHTMLファイルには自動的に加わりません。代わりに、動的なWordPressページと的テンプレートを使うことにより、更新をスムーズに行うことができます。
WordPressページは動的に生成されているにも関わらず、この機能はよく「静的ページの作成機能」といった形で呼ばれることがあります。Webパブリッシングの分野では、「静的」と「動的」の違いは上記の説明のように区別されています。しかし、一般的な用語では、「静的」とは「変化がない状態」を指すこともあります。ブログの記事は他の新しい記事が追加されるに従ってトップページなどから消えてしまいますが、WordPressページはサイトについて、管理者についてのページなど、常に同じ場所にあり内容にもあまり変化がないことが多いので、このような呼ばれ方をしています。
つまり、「WordPressページには静的な情報が含まれているが、生成は動的に行われている」と言い換えることができます。このため、WordPressページは静的・動的どちらと言っても間違いではありません。しかし、WordPressページのコンテンツはデータベースから動的に呼び出されているので、混乱を防ぐためにこの記事内では「WordPressページは動的なページである」としています。