前提・実現したいこと
wordpressの投稿一覧でループの中で各タクソノミーを配列へ入れて、
該当箇所でURLとして出力したい。
phpのループの中で各タクソノミーを取得しているのですが、同じif文を2回書いています。
これを配列に入れて、1つにまとめたいです。下記は現在のソースコードです。
php
1<?php 2 $args = array ( 3 'paged' => $paged, 4 'post_type' => 'post', 5 'posts_per_page' => 12, 6 ); 7 $myposts = get_posts( $args ); 8 foreach( $myposts as $post ): 9 setup_postdata($post); 10 11 if ($color = get_the_terms($post->ID, 'color')) { 12 foreach ( $color as $term ) { 13 $color_slug = $term -> slug; 14 } 15 } 16 if ($sub_color = get_the_terms($post->ID, 'sub_color')) { 17 foreach ( $sub_color as $term ) { 18 $sub_color_slug = $term -> slug; 19 } 20 } 21 ?>
試したソースコード
php
1<?php 2 $args = array ( 3 'paged' => $paged, 4 'post_type' => 'post', 5 'posts_per_page' => 12, 6 ); 7 $myposts = get_posts( $args ); 8 foreach( $myposts as $post ): 9 setup_postdata($post); 10 11if ($term_array = get_the_terms($post->ID, array('color','sub_color'))) { 12 foreach ( $term_array as $term ) { 13 $color_term = $term -> slug; 14 } 15} 16?> 17 18<a href="<?php echo get_term_link($color_term,'color'); ?>"><div class="taxonomy <?php echo esc_html($color_term,'color');?>"><?php echo esc_html($color_term,'color');?></div></a> 19<a href="<?php echo get_term_link($color_term,'sub_color'); ?>"><div class="taxonomy <?php echo esc_html($color_term,'sub_color');?>"><?php echo esc_html($color_term,'sub_color');?></div></a>
実現したいこと
配列に入れたあと、該当箇所でスラッグ名を変えるだけでリンク先やスラッグ名を呼び出したい。
また配列以外でも、より効率のいい方法があればそちらを知りたいです。
私の中でひとまとめにする方法が配列しか思いついていないため、上記ソースコードになっております。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
WordPress 5.2.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/24 03:04