実現したいこと
「news」というカスタム投稿タイプの年ごとのアーカイブページを作りたいです。
「2023年」「2022年」のように投稿がある年を取得し表示。
「2023年」をクリックで「2023年」に投稿された記事だけを取得表示
上記の要件を実装したいです。
以下のように書いて、
「2023年」「2022年」のように投稿がある年を取得し表示。 OK
「2023年」をクリックで localhost/2023/?post_type=news のようにURLはとれています。
しかし、「2023年」の記事以外も表示されてしまいます。
PHP
1 <ul class="list-row-link">2<!---投稿がある年を取得--!> 3 <?php4 wp_get_archives(array(5 'type' => 'yearly',6 'before' => '<li class="list-row-link__item">', //デフォルトはnull.<li><a>~</a></li>以外の形で<a>タグをくくりたいときに、設定する7 'show_post_count' => false, //アーカイブ件数を表示するかしないか. 表示させたい場合はtrueに.8 'echo' => '1', //関数で取得した値を出力するかしないか.したくないときは、'0'またはfalse指定.9 'order' => 'DESC',10 'post_type' => 'news',11 ));12 13 echo '</ul>';14 $url = $_SERVER['REQUEST_URI'];15 $yearpath = parse_url($url)['path'];16 $year = trim($yearpath,'/');17 echo '<h2>'.$year.'年</h2>';18 ?>19 <ul class="news-list" data-archive-list="news" data-item=".news-list__item" data-count="10"> 20<!--投稿タイプnewsの記事を一覧表示--!> 21 <?php22 $args = array(23 'post_type' => 'news',24 'order' => 'DESC',25 'tax_query' => array(26 array(27 'taxonomy' => 'news_cat', // カスタムタクソノミー28 'terms' => 'important_information', //取得から除外するターム名29 'operator' => 'NOT IN', //指定のタームを取得しない30 'field' => 'slug'31 ),32 ),33 );34 35 $the_query = new WP_Query($args);36 if ($the_query->have_posts()) :37 ?>38 <!-- ループ前の開始タグ -->39 <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>40 <?php41 $terms = get_the_terms($post->ID, 'news_cat');42 ?>43 <!-- posts_per_page: -1 -->44 <li class="news-list__item">45 <div class="news-list-item">46 <div class="news-list-item__category">47 48 <?php49 foreach ($terms as $term) {50 $class = "label-category";51 echo '<p class="' . "label-category" . " " . "-" . $term->slug . '">' . $term->name . '</p>';52 }53 ?>54 55 </div>56 <div class="news-list-item__date">57 <p class="label-date"><?= get_the_time('Y.m.d', $id); ?></p>58 </div>59 <div class="news-list-item__title">60 <p class="text"><a href=<?php the_permalink(); ?>><?= get_the_title(); ?></a></p>61 </div>62 </div>63 </li>64 <?php65 endwhile;66 ?>67 <?php68 else :69 ?>70 <div class="c-text-box u-text-align-center-pc">71 <p>投稿が存在しません。</p>72 </div>73 <?php74 endif;75 wp_reset_postdata();76 ?>77 </ul>
どうすれば、「2023年」「2022年」のように投稿がある年を取得し表示。「2023年」をクリックで「2023年」に投稿された記事だけを取得表示 するようにできるでしょうか?
0 コメント