Wordpress を汎用のCMSとして使う場合、以下のような仕様の特設ページを作成する必要がある事があります。
- キャンペーン等のような強力にプッシュしたい特設ページを単独で作成
- 特設ページへのリンクとして、全ページにバナー画像を配置
そういった場合のカスタマイズ方法の一例として、私の行ったカスタマイズを簡単にご紹介します。
特設ページ専用カテゴリーの作成
特設ページ専用のカテゴリーを管理画面の『投稿>カテゴリー』から作成します。
カテゴリーを作成したら、カテゴリーIDを確認しておきます。
以下、特設ページ専用カテゴリーのIDが 10 だったと仮定して説明します。
このカテゴリーはサイドバーのカテゴリー一覧メニューには表示したくないので、使用中のテーマの sidebar.php のカテゴリー表示タグ [wp_list_categories();] の引数に [exclude=10] を追加して非表示に設定します。
特設ページへのリンクバナーのページへの関連付け
特設ページを『投稿>新規追加』から作成します。
リンクバナーを適切なサイズで作成し、投稿画面のアップローダーからアップロードします。
(本文に挿入する必要はありません。)
※画像の格納先として『wp-content/uploads』を設定し、年月ベースのフォルダは作成しない設定にしてある事を前提とします。
これは管理画面の『その他の設定』で設定・確認できます。
カスタムフィールドに『banner』をkey名とし、アップした画像名を値として登録します。
keyで指定したカスタムフィールドの値を取り出す
以前の記事で紹介したように Get Custom Fielde Values というプラグインを使ってもいいのですが、このためだけにプラグインを導入するのも面倒なので、今回はプラグインを使用せずにカスタムフィールドの値を取り出します。
使用中のテーマの function.php に以下のコードを追加します。
function getCustom($key,$id) {
$custom = get_post_custom_values($key, $id);
if(count($custom)!=1)
return implode("<br />",$custom);
else
return $custom[0];
}
これは、WebTecNote さんの記事を参考にさせていただきました。
サイドバーテンプレートのカスタマイズ
サイドバーにリンクバナーが表示されるよう、使用中のテーマの sidebar.php をカスタマイズします。
sidebar.php に以下のコードを追加します。
<?php if (have_posts()) : query_posts('cat=10'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><img src="<?php bloginfo('url'); ?>/wp-content/uploads/<?php echo getCustom('banner',get_the_ID()); ?>" alt="<?php the_title_attribute(); ?>" /></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<ul>
リンクバナー周辺のデザインをカスタムする場合は、上記の <ul> にクラスを割り当てるなどとして、スタイルシートを適宜設定するといいでしょう。
以上で完了です。
このように本文に使用しない画像を記事に紐づける場合は、カスタムフィールドが非常に便利かつ応用がきくので、覚えておいて損はないでしょう。









