WordPressでは投稿記事とは別に固定ページを作ることができますが、カテゴリーやタグがつけられません。
このサイトのWorkページを作る際、サイドバーにカテゴリーごとにページリストを作ろうと思ったのですが、ページを分類するカテゴリーやタグが付けられないためページを増やすごとにサイドバーにも追加しなければならなくなってしまいます。
今回はそういった問題を解決する方法としてカスタムフィールドによるカテゴリー付けを紹介します。

この記事には改訂版が存在します。
WordPressの固定ページで擬似的にカテゴリーを使う 改訂版

カスタムフィールドとは、記事にメタデータを付加することができる機能です。
付加したメタデータはテーマファイルの中で利用することができます。

カスタムフィールドを設定する

カスタムフィールド入力欄が表示されていない場合は、投稿編集やページ編集の画面の右上にある表示オプションからカスタムフィールドにチェックを入れて表示されます。

今回はページにカテゴリーをつけるのが目的なので、新規追加を押してNameにcategory、値に任意のカテゴリー名を入力します。

テーマファイルの中にコードを書く

ページの中の表示させたい部分のテーマファイルの中にコードを書いていきます。 例えばサイドバーに、仮にカテゴリー名がmusicの固定ページをリンク付きでリスト表示させたいなら、sidebar.phpに以下のコードを記述します。

$my_query = new WP_Query();
$my_query->query('post_type=page&meta_key=category&meta_value=music');

<?php if ($my_query->have_posts()): ?>

<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

<?php endif; ?>
<?php wp_reset_query(); ?>

2行目の$my_query->query()は記事(投稿記事や固定ページ)を読み込むための関数です。引数にパラメータを渡すことで条件を絞って記事を読み込むことができます。 ここでカスタムフィールドの値を使って欲しい記事だけを読みこませようというわけです。

サンプルではpost_type=pageで表示する記事を「固定ページ」に限定し、meta_key=category、meta_value=musicでカスタムフィールドの名前がcategory、かつ値がmusicの記事のみにします。

後はループを使って記事情報を1つずつ読み込んでいくだけ。 7行目と9行目に挟まれた部分がそれです。
ここではWordPressのループタグが使えますので、記事のリンクやタイトル、本文も自由に取り出せます。 記事のリンクはthe_permalink()、タイトルはthe_title()、本文はthe_contentで表示することができます。

カスタムフィールドは使わない方は全く使わない機能だと思いますが、色々と応用がきく便利な機能なのでぜひ活用してください。

カスタムフィールドの使い方 – WordPress Codex 日本語版 WordPress カスタムフィールドの活用法:記事の短い紹介文を表示