現在の記事のカテゴリをループ外で取得
-
カスタム投稿の個別ページにcategoryを設定しており、ループ外に表示している記事と同じカテゴリのpostの新着情報を表示させたいと思っており、表示は以下でできました。
<?php if( is_single()) : $post_id = $post->ID; $cats = get_the_category(); foreach( $cats as $cat ) : $shopnewslist = get_posts( array( 'post_type' => 'post', 'category_name' => $cat->slug, 'posts_per_page' => 5 //取得記事件数 )); if( !empty( $shopnewslist ) ): foreach( $shopnewslist as $post ): setup_postdata( $post ); ?> <article class="post_list"> <a href="<?php the_permalink(); ?>"> <header class="shopNewsarea_post_header"> <p class="post_meta"> <span class="post_meta_category"> <?php $cat = get_the_category(); ?> <?php $cat = $cat[0]; ?> <?php echo get_cat_name($cat->term_id); ?> </span> <time datetime="<?php the_time('Y/m/j') ?>"> <?php the_time('Y/m/j') ?> </time> </p> <h3><?php the_title(); ?></h3> </header> </a> </article> <?php endforeach; ?> <p class="btnCenter"><a href="<?php bloginfo('url'); ?>/category/<?php echo $cat->slug; ?>/<?php echo $cat->slug; ?>_news" class="btn btn_large">お知らせ一覧へ</a><a href="<?php bloginfo('url'); ?>/category/<?php echo $cat->slug; ?>/<?php echo $cat->slug; ?>_blog" class="btn btn_large">Blog一覧へ</a></p> <?php elseif( empty( $shopnewslist ) ): ?> <article> <h3 class="title">記事が見つかりませんでした。</h3> <p>検索で見つかるかもしれません。</p> <?php get_search_form(); ?> </article> <?php endif; ?> <?php wp_reset_query(); ?> <?php wp_reset_postdata(); ?> <?php endforeach; ?> <?php endif; ?>
ただ上記のコードですと、各一覧へのページへのリンク
<p class="btnCenter"><a href="<?php bloginfo('url'); ?>/category/<?php echo $cat->slug; ?>/<?php echo $cat->slug; ?>_news" class="btn btn_large">お知らせ一覧へ</a><a href="<?php bloginfo('url'); ?>/category/<?php echo $cat->slug; ?>/<?php echo $cat->slug; ?>_blog" class="btn btn_large">Blog一覧へ</a></p>
のaタグに記述した
<?php echo $cat->slug; ?>
が新着情報で取得した直前?の各記事のカテゴリを取得してしまします。カテゴリは親子関係になっており、カスタム投稿の記事には親カテゴリを
postの各記事にはその親の子カテゴリが設定されております。
各記事記事一覧へのリンクを表示させている記事のカテゴリスラッグを取得するには、どのようにすればよいのかご教授お願いします。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「現在の記事のカテゴリをループ外で取得」には新たに返信することはできません。