サポート » 使い方全般 » カテゴリー出力について

  • 初心者の質問で申し訳ございません。

    記事ページのサイドバーに複数のカテゴリーに属したタイトルを表示したいのですが、
    現状ではカテゴリー名の表示はしていないので
    複数のカテゴリーに属した記事だと、サイドバーに同じタイトルが
    重複しているように見えてしまいます。

    表示させているコード

    <?php
    if (is_single()) :
    $cur_post = $wp_query->get_queried_object();
    $post_cats = get_the_category($cur_post->ID);
    foreach ($post_cats as $post_cat) :
    ?>
    <li>
    <ul>
    <?php
    $cat_posts = get_posts("category=" . $post_cat->cat_ID . "&numberposts=-1&orderby=date&order=DESC");
    foreach ($cat_posts as $post) : setup_postdata($post);
    ?>
    <li>
    <?php if ($post->ID == $cur_post->ID) : ?>
    	<span class="current_post">
    <?php else : ?>
    	<a href="<?php the_permalink(); ?>">
    <?php endif; ?>
    	<?php the_title(); ?>
    <?php if ($post->ID == $cur_post->ID) : ?>
    	</span>
    <?php else : ?>
    	</a>
    <?php endif; ?>
    </li>
    <?php endforeach; ?>
    </ul>
    <?php endforeach; ?>
    </li>
    <?php endif; ?>

    重複しているタイトルを1つだけ表示ということは
    出来ないのでしょうか?

    ご返答よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    bikinigiさん、こんにちは。

    $cat_postsのforeachの中で、出力する投稿のIDを変数に追加していき、$cat_postsを取得するget_postsのexcludeパラメータとして指定してはどうでしょうか。

    スレッド開始 bikinigi

    (@bikinigi)

    jim912さん返信ありがとうございます。

    ですが、自分はまだphpの理解度が薄いため
    どういうタグを付け加えればよいのかが
    わからない状態です。
    もしよろしければ、ご指摘頂けないでしょうか。
    どうかよろしくお願い致します。

    #未検証

    <?php
    if (is_single()) :
    $cur_post = $wp_query->get_queried_object();
    $post_cats = get_the_category($cur_post->ID);
    $exclude = array();  // 出力済の投稿のIDをコレに集めます
    foreach ($post_cats as $post_cat) :
    ?>
    <li>
    <ul>
    <?php
    $cat_posts = get_posts( array(
      'category' => $post_cat->cat_ID,
      'numberposts' => -1,
      'orderby' => 'date',
      'order' => 'DESC',
      'exclude' => $exclude  // 出力済の投稿は除外!
    );
    foreach ($cat_posts as $post) : setup_postdata($post);
      $exclude[] = get_the_ID();  // 現在の投稿のIDを出力済ってことにします
    ?>
    (以下略)
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カテゴリー出力について」には新たに返信することはできません。