前提・実現したいこと
Wordpressのテーマ作成をしております。
カスタム投稿の詳細ページにてカスタム分類で絞った関連記事を表示させたい
ここに質問の内容を詳しく書いてください。
functions.phpにてカスタム投稿とカスタム分類を追加するコードを記載しています。
記事詳細ページsingle-sale.phpには関連記事を詳細をコードを記載しています。
PHP 7.3.5
MySQL 8.0.16
WordPress Version 5.3.2
発生している問題・エラーメッセージ
関連記事は表示されますが、カスタム分類で作ったカテゴリーのみを関連記事に表示することができない
該当のソースコード
functions.php <?php function sale_excerpt_length(){ return 80; } add_filter('excerpt_mblength','sale_excerpt_length'); //商品の追加 function hamaen_sale_create_post_type(){ register_post_type('sale', array( 'labels' => array( 'name' => '商品一覧', 'singular_name' => '商品', ), 'public' => true, 'menu_position' => 5, 'has_archive' => true, 'hierarchical' => true, 'taxonomies' => array('type'), 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', ), ) ); } add_action('init', 'hamaen_sale_create_post_type', 1); //商品ーカテゴリの追加 function hamaen_sale_create_taxonomies(){ $labels = array( 'name' => '商品の分類', 'singular_name' => '商品の分類', ); register_taxonomy('type',array('sale'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, ) ); } add_action('init', 'hamaen_sale_create_taxonomies', 0);
archive-sale.php <?php get_header(); ?> <section class="page_title"> <div class="breadcrumb"> <a href="<?php echo home_url(); ?>">HOME</a> <a href="<?php echo home_url('/sale'); ?>"><?php wp_title(''); ?></a> </div> <img src="<?php echo get_template_directory_uri(); ?>/images/company/shio.svg" alt="塩"> <h2 class=""><?php wp_title(''); ?></h2> </section> <main> <section class="sale_list"> <h3>日本各地から海外まで<br>様々な「塩」を取り扱いしております</h3> <h4><img src="<?php echo get_template_directory_uri(); ?>/images/sale/h4_img1.svg" alt="カテゴリー"></h4> <ul class="category"> </ul> <h4><img src="<?php echo get_template_directory_uri(); ?>/images/sale/h4_img2.svg" alt="商品一覧"></h4> <div class="flex"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <a href="<?php the_permalink(); ?>" class="card"> <?php if(has_post_thumbnail()): the_post_thumbnail(); else: ?> <img src="<?php echo get_template_directory_uri(); ?>/images/home/no-image.png" alt="" /> <?php endif; ?> <h5><?php the_title(); ?></h5> <p><span class="weight">300g</span>144<span class="value">円(税抜き)</span></p> <?php the_excerpt(); ?> </a> <?php endwhile; ?> </div> <ul class="pagination"> <?php global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages, 'prev_next' => true, 'prev_text' => __('Previous'), 'next_text' => __('Next') ) ); ?> </ul> <?php else: ?> <!--投稿が見つからない--> <p>申し訳ございません。ただいま準備中です。</p> <!--//投稿が見つからない--> <?php endif; ?> </section> </main> <!-- フッター --> <?php get_footer('common'); ?>
single-sale.php <?php get_header(); ?> <section class="page_title"> <div class="breadcrumb"> <a href="<?php echo home_url(); ?>">HOME</a> <a href="<?php echo home_url('/sale'); ?>"><?php wp_title(''); ?></a> </div> <img src="<?php echo get_template_directory_uri(); ?>/images/company/shio.svg" alt="塩"> <h2 class=""><?php wp_title(''); ?></h2> </section> <main> <?php if ( have_posts() ) : ?> <section class="single_info"> <?php while ( have_posts() ) : the_post(); ?> <!--ループ--> <h3><?php $terms = get_the_terms( $post->ID, 'type'); if (! is_wp_error($terms) && $terms) : foreach ( $terms as $term) : ?> <span class="<?php echo esc_attr( $term->slug ); ?>"><?php echo esc_html($term->name); ?></span><?php the_title(); ?></h3> <?php endforeach; endif; ?> <ul class="single-item"> <li><?php the_post_thumbnail('thumbnail'); ?></li> <li><img src="<?php echo get_template_directory_uri(); ?>/images/single/item2.jpg" alt="item1"></li> </ul> <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); ?> <style> #slick-slide-control00::before { content:" "; width: 90px; height:90px; background:url(<?php echo $image[0]; ?>) no-repeat center center; background-size:cover; } #slick-slide-control01::before { content:" "; width: 90px; height:90px; background:url(../images/single/item2.jpg) no-repeat center center; background-size:cover; } .slick-dots li.slick-active button:before{ } </style> <p class="single_text"><?php $content_string = get_the_content(); $content_string = str_replace('<p','<p class="classname" ',$content_string); echo $content_string; ?> </p> <div class="single_list"> <p>下記の内容量から取り扱いしております。</p> <div class="flex"> <dl> <dt>容量</dt> <dd>金額</dd> </dl> <dl> <dt>100g</dt> <dd>100円</dd> </dl> <dl> <dt>300g</dt> <dd>200円</dd> </dl> <dl> <dt>1Kg</dt> <dd>1000円</dd> </dl> <dl> <dt>3Kg</dt> <dd>3000円</dd> </dl> </div> </div> <h4>商品情報</h4> <div class="single_value"> <dl> <dt>カテゴリ</dt> <dd>日本の塩 - (財)塩事業センターの塩</dd> </dl> <dl> <dt>用途</dt> <dd>家庭・業務用</dd> </dl> <dl> <dt>商品番号</dt> <dd>P150902-001</dd> </dl> <dl> <dt>原材料名</dt> <dd>メキシコ産天日塩炭酸Mg</dd> </dl> <dl> <dt>内容量</dt> <dd>300g×20</dd> </dl> <dl> <dt>備考</dt> <dd>製造元:公益財団法人塩事業センター</dd> </dl> </div> <!--//ループ--> <?php endwhile; ?> <?php else: ?> <!--投稿が見つからない--> <p>申し訳ございません。ただいま準備中です。</p> <!--//投稿が見つからない--> <?php endif; ?> </section> <section class="sale_list"> <h5><img src="<?php echo get_template_directory_uri(); ?>/images/single/h3_img.svg" alt="関連商品"></h5> <div class="flex"> <?php global $post; $args = array( 'numberposts' => 3, //8件表示(デフォルトは3件) 'post_type' => 'sale', //カスタム投稿タイプ名 'taxonomy' => 'type', //タクソノミー名 'orderby' => 'rand', //ランダム表示 'post__not_in' => array($post->ID) //表示中の記事を除外 ); ?> <?php $myPosts = get_posts($args); if($myPosts) : ?> <?php foreach($myPosts as $post) : setup_postdata($post); ?> <a href="<?php the_permalink(); ?>" class="card"> <?php if(has_post_thumbnail()): the_post_thumbnail(); else: ?> <img src="<?php echo get_template_directory_uri(); ?>/images/home/no-image.png" alt="" /> <?php endif; ?> <h5><?php the_title(); ?></h5> <p><span class="weight">300g</span>144<span class="value">円(税抜き)</span></p> <?php the_excerpt(); ?> </a> <?php endforeach; ?> <?php else : ?> <p>関連アイテムはまだありません。</p> <?php endif; wp_reset_postdata(); ?> </div> </section> </main> <!-- フッター --> <?php get_footer('common'); ?>
たりない情報等がございましたら教えてください。
お願いいたします。
回答1件
あなたの回答
tips
プレビュー