wordpress タグ一覧にカテゴリ情報表示

通常のブログを運営している際や、welcartでECサイトを構築している場合など

投稿の分類の仕方として「カテゴリ」「タグ」それぞれ利用しているケールも多いかと思います。

私はwelcartで各商品の属性を下記の形で運用しています。

メーカー名:タグ 商品種別:カテゴリ

この場合、メーカー一覧(タグ一覧)の画面を見たときに、これがどの商品種別かがわからなくなってしまいます。

そんな時にタグ一覧にもカテゴリ名を表示させる。本日はそんな話です。

完成イメージ

下記のように、抜粋項目の下にカテゴリ名を表示します。

投稿を下記のように分類しています。

タグ:日本産

カテゴリ:野菜、フルーツ、会員用

before

after

日本産というタグで一覧を見ていると、その投稿がどのカテゴリに属しているかわからないので

各投稿毎に「カテゴリ名」を表示します。

カスタマイズ箇所

タグの一覧なので、「archive.php」をカスタマイズします。

サンプルはwelacartのテーマを利用しています。

ページ修正箇所

<?php if (have_posts()) : ?>
<div class="post-li">
	<?php while (have_posts()) : the_post(); ?>
		<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<p><time datetime="<?php the_time('c'); ?>"><?php the_time(__('Y/m/d')) ?></time></p>
<div class="post-title"><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php printf( esc_attr__( 'Permalink to %s', 'welcart_basic' ), the_title_attribute( 'echo=0' ) ); ?>"><?php the_title(); ?></a></div>
<?php the_excerpt() ?>
		</article>
	<?php endwhile; ?>
</div>
<?php endif; ?>

カスタマイズは抜粋を示す「the_excerpt」の下に追加します。

<?php if (have_posts()) : ?>

<div class="post-li">
	<?php while (have_posts()) : the_post(); ?>
		<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<p><time datetime="<?php the_time('c'); ?>"><?php the_time(__('Y/m/d')) ?></time></p>
<div class="post-title"><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php printf( esc_attr__( 'Permalink to %s', 'welcart_basic' ), the_title_attribute( 'echo=0' ) ); ?>"><?php the_title(); ?></a></div>
<?php the_excerpt() ?>
                        <?php
                        $categories = get_the_category();
                        if ( $categories ) {
                            echo '<ul class="cf opt-tag">';
                            foreach ( $categories as $category ) {
                                if($category->term_id === 2){
                                    continue;
                                }else{
                                    echo '<li class="recommend">'.$category->name.'</li>';
                                }

                            }
                            echo '</ul>';
                        }
                        ?>
		</article>
	<?php endwhile; ?>
</div>

<?php endif; ?>

まず「get_the_category()」という関数を用いて、投稿が属するカテゴリの一覧を取得します。

その後にリストでカテゴリを出力していきます。

もし表示させたくないカテゴリがあった場合に備えて、if文で除外の処理をしています。

if($category->term_id === 2){
    continue;
}else{
    echo '<li class="recommend">'.$category->name.'</li>';
}

レイアウト修正

最後にレイアウトを調整します。

.opt-tag li.category {
	    color: #4eb6a5;
	    margin-right:2px;
}

.opt-tag li {
    background-color: #fff;
    display: inline-block;
    font-size: 10px;
    margin: 2px 0;
    padding: 0 5px;
    line-height: 18px;
    border-width: 1px;
    border-style: solid;
}

これで完成です

コメントを残す