サポート » 使い方全般 » カスタム投稿の一覧ページにて、カテゴリ別に振り分け表示がしたい

  • 解決済 haruhisa

    (@haruhisa)


    お世話になります。

    今回custom-post-typesのプラグインを使いカスタム投稿で
    「商品ラインナップ」というのを用意しました。
    商品ラインナップの投稿記事一覧をarchive-products.phpで表示しています。
    同プラグインでカスタム分類「商品カテゴリ」を用意し、「カテゴリA」「カテゴリB」のカテゴリをそれぞれ登録しました。

    archive-products.phpでまず以下のコードで、カテゴリAとBの情報を取得しています。
    <?php $categories = get_terms( '商品カテゴリのスラッグ', 'get=all' ) ; ?>

    登録してあるカテゴリ分ループをし、そしてカテゴリに属している投稿記事を表示しようと
    以下のコードを入力しました。

    <?php foreach($categories as $cat): ?>
    <h5><?php echo $cat_name = $cat->name; ?></h5>
    <?php $loop = new WP_Query( array( 'post_status' => 'publish', 'post_type' => 'products','category_name' => $cat->slug , 'posts_per_page' => -1 ) ); ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    HTMLコード
    <?php endwhile; ?>
    <?php endforeach; ?>

    しかし、WP_Query内の「’category_name’」を設定すると、投稿記事の情報が表示されないのです。
    ※「’category_name’」を設定しない場合は全投稿記事が表示される状態です。
    「’category_name’」の設定を「’category_name’ => ‘カテゴリAのスラッグ’」と決め打ちで
    行っても表示はされませんでした。

    その他に「get_posts()」でも試してみましたが、結果は同じでした。

    そもそもarchive.phpではカテゴリ指定での投稿記事一覧を表示する事は可能でしょうか。

    どなたかご教授宜しくお願い致します。

    以下、構築環境です。
    PHP 5.2.16
    MySQL 5.0.75
    Wordpress 3.3.2
    custom post types ui 0.7

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

    (@jim912)

    haruhisaさん、こんにちは。

    category_nameパラメーターは、文字通りカテゴリーにしか使えないため、カスタム分類のスラッグを指定すると、該当記事がないと判断されてしまいます。

    タクソノミーパラメーターを指定してみてください。

    トピック投稿者 haruhisa

    (@haruhisa)

    >>jim912さん
    お世話になります!
    頂いたリンクから以下のコードで設定したらうまく表示されました!

    <?php $categories = get_terms( 'goods_category', 'get=all' ) ; ?>
    <?php foreach($categories as $cat): ?>
    <?php
    //get_termsからの情報を格納
    $cat_name = $cat->name;
    $cat_tax = $cat->taxonomy;
    $cat_term = $cat->term_id;
    $cat_term_tax_id = $cat->term_taxonomy_id;
    ?>
    <?php $loop = new WP_Query( array( 'post_status' => 'publish', 'post_type' => 'products','tax_query' => array(array('taxonomy' => $cat_tax,'field' => $cat_term_tax_id,'terms' => $cat_term)),'posts_per_page' => -1 )); ?>
    
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    HTMLコード
    <?php endwhile; ?>
    <?php endforeach; ?>

    ありがとうございました!助かりました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿の一覧ページにて、カテゴリ別に振り分け表示がしたい」には新たに返信することはできません。