WordPressのarchive.phpを編集してカテゴリごとに指定した画像を表示

imageWordPressの技術ネタです。個人的には画期的な仕組みを発見してサイトに組み込みましたので、自分でも忘れないように報告がてら記しておきます。

まず、何ができるようになったのかというと、カテゴリごとに決まった画像を表示するということです。つまり、子育ての記事のカテゴリリストでは「子育てに関する画像・タイトル」を表示し、鉄道に関する記事では、「鉄道に関する画像・タイトル」を自動的に表示するというものです。

今までも、カテゴリによってレイアウトや一部の画像を差し替えたいということはあって、現在もcategory-××.phpというファイルをつくって対応しているのですが、この方法で大量生産するのは面倒です。中学社会科問題集のように、おもいっきりレイアウトが変わってしまうのならいいのですが、記事リストくらいだと見出しの画像を入れ替えるだけでいいなんていうこともよくあります。だから、画像が自動的に差し替わればどんなに便利かといろいろと解決策を探っていました。

1、カテゴリURLに目をつけた。

最初は、カテゴリのアドレスを取得して、画像リンクを貼る方法を検討しました。しかし、これはうまくいきませんでした。

2、<?php echo $cat->category_nicename; ?>を使う。

これは、カテゴリのスラッグ(アルファベット)を取得するタグなので、一瞬うまく行ったと思いました。しかし、残念なことに、そのカテゴリに所属する最初の記事のカテゴリまで取得してしまい、思うようにいきません。

例:JR北海道>普通列車>711系というカテゴリの「普通列車」を開いた時に、キハ40の記事がトップにあったら、キハ40の画像が表示されてしまうなど。

私がやりたいのは、所属記事とか、親カテゴリ・子カテゴリに関係なく、「今開いているカテゴリ」のスラッグが欲しいのです。普通列車だったらそのスラッグが欲しいわけです。

3、get_categoryの引数にカテゴリIDを入れる

この辺までくると、よくわかんないこともあるのですが、カテゴリー表示の場合は、グローバル変数$catに表示しているカテゴリーのIDが入っているようです。これをget_categoryの引数として指定し、カテゴリーの情報を取得することが可能ということなので次のようにしてみました。
<?php $cat_info = get_category( $cat ); ?> で <?php echo wp_specialchars( $cat_info->slug ); ?> と出力すると・・・
JR北海道のカテゴリでは「hokkaido」普通列車では「local」711系では「711」と出力されるようになりました。
ここまで来たら買ったようなものですね。この記事をここまで読んで下さるような方ならもう、応用し放題ではないでしょうか。
使い方はこんな感じ(たぶん、大文字小文字などの関係でこのまま貼り付けたら使えませんが、こんな感じです。)
<?php
$cat_info = get_category( $cat );  ←カテゴリIDを使って呼び出したいスラッグを指定する
?>

<IMG src=”http://n-hokkaido.com/tetudou/image/<?php echo wp_specialchars( $cat_info->slug ); ?>.png” alt=”代替テキスト” >
これにより、hokkaidoというスラッグであれば、"http://n-hokkaido.com/tetudou/image/hokkaido.png"というようになり、画像を呼び出せることになります。なので、imageフォルダの中に、カテゴリスラッグと同じ名前の画像を入れて行けば、自動的にそれが表示されるというわけです。このプログラムは、特に交通写真ライブラリのサイトで大いに活用できそうです。

4、こんな応用も可能です

WordPressのいいところは、以上のようにタグを使っていろいろ条件を呼び出せること、そしてそれを自由にレイアウトできることです。画像、コメント、抜粋などなど。可能性は無限ですので、ぜひサイト作りに生かしてみてはいかがでしょうか。新聞社などでも多くとりいれられている仕組みで、ブログとはちょっとちがった楽しみ方が盛りだくさんです。
さて、先ほどの応用ですが、<?php echo wp_specialchars( $cat_info->slug ); ?>2.pngとか。
<?php echo wp_specialchars( $cat_info->slug ); ?>-midasi.pngという使い方も可能です。
そうすることによって、hokkaido2.pngとかhokkaido-midasi.pngなどになるわけですから、ひとつのページの中で何か所も連動させて画像を入れ替えることが可能となるわけです。画像が入れ替わるだけでも、印象はずいぶん違います。カテゴリ名(スラッグを活用)だけに気を付けて画像を作ってフォルダに入れればいいだけですから、効率よくサイト作成もできます。自分でも、ちょっと驚きの技術発見でした。いえい!

コメント

  1. […] 参考: WordPressのarchive.phpを編集してカテゴリごとに指定した画像を表示 | なまら北海道だべさ […]

スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク

コメント

  1. […] 参考: WordPressのarchive.phpを編集してカテゴリごとに指定した画像を表示 | なまら北海道だべさ […]