• 解決済 Colla

    (@colla)


    初めて投稿いたします、お世話になります。

    カテゴリーごとの投稿タグを、リスト形式でsidebar.phpに表示させたいです。
    (archive.phpとsingle.phpで、sidebar.phpを読み込んでいます。)

    例えば、「カテゴリーくだもの」の投稿タグ「りんご」「バナナ」「キウイ」をサイドバーに
    ・りんご
    ・バナナ
    ・キウイ
    と表示させるイメージです。

    現在下記のソースを入れていますが、カテゴリーごとに表示させるにはどうすれば良いでしょうか。

    <?php
    $tagList = $wpdb->get_results($wpdb->prepare("
        SELECT t.term_id,t.name,t.slug,tt.count
        FROM $wpdb->terms AS t
        JOIN $wpdb->term_taxonomy AS tt
        USING(term_id)
        WHERE tt.taxonomy = 'post_tag'
        ORDER BY tt.count DESC
    "));
    foreach ($tagList as $value):?>
    <ul>
    <li><a href="/tag/<?php echo $value->slug; ?>/"><?php echo $value->name; ?></a></li>
    </ul>
    <?php endforeach;?>

    ご教授いただけると嬉しいです。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 Colla

    (@colla)

    ちなみに、上記のソースだと全カテゴリーの投稿タグが表示されます。

    例で言うと、「カテゴリーくだもの」のサイドバーに
    ・りんご
    ・バナナ
    ・キウイ
    ・野球 
    と出ている状態です。
    (野球は「カテゴリースポーツ」で使用しているタグと考えて下さい)

    「現在表示しているカテゴリーページのタグのみ取り出す」
    という表記をしてやれば良いと思うのですが、書き方が分かりません…

    よろしくお願いいたします。

    トピック投稿者 Colla

    (@colla)

    自己解決しました。

    <?php
    	// --- 特定カテゴリーの記事を抽出して表示
    	$wpquery = array(
    		'posts_per_page' => -1,		// 全部表示させる
    		'cat' => '1',				// カテゴリID
    	);
    
    	// --- クエリの実行
    	$newloop = new WP_Query($wpquery);
    	if ($newloop->have_posts()) : while ($newloop->have_posts()) : $newloop->the_post();
    ?>
    	<ul>
    	<li><?php the_tags('','',''); ?></li>
    	</ul>
    
    <?php endwhile; endif; ?>

    the_tagsを使っていて、カテゴリーとタグを絞っていませんので
    別カテゴリーでもタグ名がかぶると全部引っ張られて来ます。
    必要があれば対策を行って下さい。

    ひとまず閉じさせて頂きます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カテゴリごとの投稿タグを一覧表示させる」には新たに返信することはできません。