初歩的な質問かもしれませんが、アドバイスいただけると幸いです。
親子関係のあるカテゴリで、以下のようなことをやりたいです。
- 固定ページ(categorylist.php)でリンク付きのカテゴリ一覧を表示
- 記事紹介ページ(home.php)で各記事にリンク付きのカテゴリを表示
- 1と2でカテゴリを選択すると、該当カテゴリで絞り込みされた記事一覧ページ(category.php)を表示
コードは以下です。
CategoryList
1<div> 2 <?php 3 $category_ids = array( '1', '2', '3' ); 4 $category_link = get_category_link( $category_id ); 5 foreach( $category_ids as $category_id ) { 6 ?> 7 <p> 8 <a href="<?php echo esc_url( $category_link ); ?>"><?php echo get_cat_name( $category_id ) ?></a> 9 </p> 10 <?php 11 } 12 ?> 13</div>
Home
1<ul> 2 <?php 3 global $post; 4 $myposts = get_posts( $args ); 5 foreach( $myposts as $post ) { 6 setup_postdata($post); 7 ?> 8 <li> 9 <a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 10 <br><span><?php the_category('/') ?></span> 11 </li> 12 <?php 13 } 14 wp_reset_postdata(); 15 ?> 16</ul>
Category
1<h2>Category:<?php $cat = get_the_category(); ?><?php $cat = $cat[0]; ?><?php echo get_cat_name($cat->term_id); ?></h2> 2 <?php 3 if ( have_posts() ) { 4 while ( have_posts() ){ 5 the_post(); 6 ?> 7 <article> 8 <p> 9 <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 10 </p> 11 </article> 12 <?php 13 } 14 } 15 ?>
上記コードで表示確認をすると、以下のような問題が起こります。
■categorylist.phpのカテゴリからcategory.phpに遷移すると、カテゴリと記事が空の状態になる
■home.phpの<?php the_category('/') ?>
で表示されているカテゴリ(子/親)で、親カテゴリを選択した場合、子カテゴリの内容で絞り込まれた状態で表示される
home.phpの<?php the_category('/') ?>
の子カテゴリを選択した場合のみ、category.phpで期待した画面が表示される、という状況です。
上記問題を直接解決できるやり方があれば大変ありがたいのですが
そもそもcategory.phpで表示できるのはthe_category
で得られたカテゴリのみで、その他のカテゴリ関数で取得したリンクはcategory.phpではなく、他のページを使用するのでしょうか。
回答1件
あなたの回答
tips
プレビュー