WordPressで制作するコーポレートサイトには「お知らせ」や「新着情報」を設置するのですが、カテゴリーごとにアイコンを変えたいなと思いました。
せっかくWordPressで作っているんだから、取得できる情報を活用して、勝手に切り替わるようにしました。その時に実装したメモです。
カテゴリーのスラッグを活用する
WordPressでカテゴリーを作成する時に設定するスラッグ。このスラッグを取得して、投稿のリストごとにアイコン(画像)を変える方法。
簡単に言い換えれば、取得したスラッグ名をCSSのクラスや画像ファイル名の一部分で置き換えます。
CSSクラスをカテゴリースラッグにする方法
カテゴリーナンバー「2」「3」「4」から5記事読み込んで、それぞれのliタグのclassをカテゴリースラッグに割り当てます。
<ul> <?php $posts = get_posts('numberposts=5&category=2,3,4'); global $post; ?> <?php if($posts): foreach($posts as $post): setup_postdata($post); ?> <?php $cat = get_the_category(); $cat = $cat[0]; ?> <li class="<?php echo $cat->category_nicename; ?>"><?php the_time('Y.m.d'); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; endif; ?> </ul>
あとは、CSSのリストアイコンや背景なりで画像を設定すればOK。
画像ファイル名の一部分をカテゴリースラッグにする方法
次に、imgタグで読み込む画像ファイルをカテゴリースラッグに置き換える方法です。やや強引ですが、CSSを使わないのでシンプル。
<?php $posts = get_posts('numberposts=5&category=2,3,4'); global $post; ?> <?php if($posts): foreach($posts as $post): setup_postdata($post); ?> <table> <tr> <th><?php the_time('Y.m.d'); ?></th> <?php $cat = get_the_category(); $cat = $cat[0]; ?> <td class="icon"><img src="<?php echo get_template_directory_uri(); ?>/img/topics_icon_<?php echo $cat->category_nicename; ?>.gif" alt="" /></td> <td><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></td> </tr> </table> <?php endforeach; endif; ?>
カテゴリースラッグは便利
今回はリストの画像を置き換える方法でしたが、このやり方を流用すれば他にも便利なことができそうですね。
記事のコメント