一旦、メニューのところはきのうカスタムタクソノミーを使って完成しました。ただ、ここもtaxonomy-genre-salada.php, -genre-drink.php, taxonomy-genre-pasta.php, taxonomy-genre-breadsweetes.phpとそれぞれのファイルを作って対応していました。これも1つのtaxonomy-genre.php にまとめることができるはずです。色々、調べましたが、わからず、CHAT-GPTの力を借りることにしました。下記のコード解答でした。

<?php
// 現在のタームを取得
$current_term = get_queried_object();
$menu_query = new WP_Query( array(
‘post_type’ => ‘menu’,
‘posts_per_page’ => 12,
‘orderby’ => ‘item’, ‘order’ => ‘ASC’,
‘tax_query’ => array( array(
‘taxonomy’ => ‘genre’,
‘field’ => ‘slug’,
‘terms’ => $current_term->slug,/ 現在のタームのスラッグを動的に設定
    ),
   ),
  )
 );
?>
<?php if ($menu_query->have_posts()) : ?>
<?php while ($menu_query->have_posts()) : $menu_query->the_post(); ?>
<li class=”p-menu__card-item”>
<div class=”p-menu__img”>
<?php if (has_post_thumbnail()) : ?>
<?php the_post_thumbnail(); ?>
<?php else : ?>
<img src=”<?php echo get_template_directory_uri(); ?>/img/noimg.png” alt=””>
<?php endif; </div>
<h3 class=”p-menu__name”><?php the_title(); ?></h3>
<h3 class=”p-menu__price”><?php the_excerpt(); ?></h3>
</li>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

get_queried_object()関数を使用して、現在のクエリに関連付けられているオブジェクトを取得し、それを$current_term変数に格納しています。terms => $current_term->slug: 現在のターム($current_termで取得したオブジェクト)のスラッグを使用して、そのタームに関連する投稿のみを取得します。

最初は考えて、実装できることが大事だと思います。徐々に効率化も考えていきたいと思います。

投稿者

Kの手習い

前職はOA機器の販売営業でしたが、退職して、50代で1からプログラマーを目指します。一般的にこの年齢からは厳しいと言われておりますが、この歳ならではの経験を活かして、頑張ります!

コメントを残す