WordPressでお知らせ一覧リストのアイコンをカテゴリーごとに自動で変更させる

WordPressでお知らせ一覧リストのアイコンをカテゴリーごとに自動で変更させる

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;
?>

カテゴリースラッグは便利

今回はリストの画像を置き換える方法でしたが、このやり方を流用すれば他にも便利なことができそうですね。

Web
スポンサーリンク
この記事を書いた人
管理人

10-PLATEの管理人。ゲームとアニメが趣味の30代おっさん。テレビや芸能情報といったトレンドをまとめることを生業としている底辺中の底辺なので温かい目で見てやって下さい。

管理人をフォローする
スポンサーリンク

記事のコメント