■ 当該サイト : http://test.site-madoguchi.com/
当該ページ : http://test.site-madoguchi.com/archives/kamei/kameicat/%E3%82%B0%E3%83%AB%E3%83%A1
■ 目標
1.カスタム投稿タイプを2種類(加盟店・非加盟店)作成し、1つのページに加盟店と非加盟店の記事が順に現れるようにする。
2.アーカイブページも連動し、たとえばカテゴリー「グルメ」を選択すると加盟店のグルメ、非加盟店のグルメの記事が順に現れるようにしたいと考えております。
■ 現状
目標1は達成したのですが、目標2がうまくいっておりません。
「グルメ」を押すと加盟店の記事は全てグルメの記事になっているのですが、非加盟店の記事はカテゴリー選別できていない状態で一覧として表示されてしまいます。
(「グルメ」を押しても非加盟店の記事にはコンビニや銀行等の店舗情報が含まれてしまいます。)
解決策をご教授いただけますと幸いです。
宜しくお願いいたします。
■ 使用したプラグインと作業過程
「Advanced Custom Fields」を使用しています。
functions.phpに下記情報を入れて投稿タイプを登録し、archive-kamei.phpに表示されるよう記述しています。字数制限のため記述ができませんでしたが、taxonomy.phpにもarchive-kamei.phpと同じソースコードを記述し、アーカイブページが作成されるよう設定してあります。
■ functions.php
register_taxonomy(
1'newsinfocat',// 新規カスタムタクソノミー名 2'newsinfo',// 新規カスタムタクソノミーを反映させる投稿タイプの定義名 3array( 4'label' => __( 'newsinfocat' ),// 表示するカスタムタクソノミー名 5'rewrite' => array( 'slug' => 'newsinfocat' ),// カスタムタクソノミースラッグ名 6'show_ui' => true, 7'hierarchical' => true,' 8query_var' => true) 9); 10 register_post_type('kamei', 11 array( 12 'labels' => array( 13 'name' => '加盟店登録', 14 'singular_name' => '加盟店登録', 15 ), 16 'public' => true, 17 'menu_position' => 5, 18 'has_archive' => true, 19 'publicly_queryable' => true, 20 'supports' => array('title','editor','excerpt','thumbnail','custom-fields',), 21 'taxonomies' => array('kameicat'), 22) 23); 24 register_taxonomy( 25'kameicat',// 新規カスタムタクソノミー名 26'kamei',// 新規カスタムタクソノミーを反映させる投稿タイプの定義名 27array( 28'label' => __( 'kameicat' ),// 表示するカスタムタクソノミー名 29'rewrite' => array( 'slug' => 'kameicat' ),// カスタムタクソノミースラッグ名 30'show_ui' => true, 31'hierarchical' => true,' 32query_var' => true) 33); 34 register_post_type('hikamei', 35 array( 36 'labels' => array( 37 'name' => 'その他', 38 'singular_name' => 'その他', 39 ), 40 'public' => true, 41 'menu_position' => 5, 42 'has_archive' => true, 43 'publicly_queryable' => true, 44 'supports' => array( 45 'title', 46 'editor', 47 'excerpt', 48 'thumbnail', 49 'custom-fields', 50 ), 51) 52); 53コード
■ archive-kamei.php
<div class="wrapper sectionpage"> <h2 id="obi1" style="margin: 0px auto 30px;" class="goan"><span style="color:#d6170c;font-weight:700;font-size:1.0em;">○ </span>お店のご案内</h2> <div class="storepostinner"> <div class="content page73"> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div class="article wd50"> <div class="innerleft"> <a href="<?php the_permalink(); ?>"><img src="<?php if( get_field('image1')): ?> <?php the_field('image1'); ?> <?php else: ?> /wp-content/uploads/2016/09/東口商店街.png <?php endif; ?>" alt="<?php the_field('store'); ?>" alt="<?php the_field('store'); ?>" class="wh150 image2"></a> <a href="<?php the_permalink(); ?>"><button class="shousai">詳細を見る</button></a> </div> <div class="innerright"> <p><?php echo get_the_term_list( $post->ID,'kameicat','<ul class="catname categorylist"><li>', '</li><li>','</li></ul>'); ?> </p> <h2 class="archivetitle"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <!--<p class="archivedes"><?php $text = mb_substr(get_field('message'),0,100,'utf-8'); echo $text.'...'; ?></p>--> <p class="archivedes">TEL : <?php the_field('phone'); ?></br> <?php the_field('address'); ?></br> <?php the_field('open'); ?></br> <?php the_field('time'); ?></p></br> </div> <!-- /.article --></div> <?php endwhile; ?> <?php else: ?> <div class="article"> <p>現在該当するデータがございません。</p> <!-- /.article --></div> <?php endif; ?> <?php query_posts( array( 'post_type'=>'hikamei', ) ); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div class="article wd50"> <div class="innerleft"> <img src="http://test.site-madoguchi.com/wp-content/uploads/2016/09/東口商店街.png" alt="<?php the_field('store'); ?>" class="wh150 image2"> </div> <div class="innerright"> <p><?php echo get_the_term_list( $post->ID,'hikameicat','<ul class="catname categorylist"><li>', '</li><li>','</li></ul>'); ?> </p> <h2 class="archivetitle"><?php the_title(); ?></h2> <p class="archivedes">TEL : <?php the_field('phone'); ?></br> <?php the_field('address'); ?></br> <?php the_field('open'); ?></br> <?php the_field('time'); ?></p></br> </div> <!-- /.article --></div> <?php endwhile; ?> <?php else: ?> <div class="article"> <p></p> <!-- /.article --></div> <?php endif; ?> </div> <?php get_sidebar(); ?> </div> </div> <!-- /wrapper --> <script> var catnameUl = document.getElementsByClassName('catname'); i = 0; while(i<20) { catnameLi = catnameUl[i].childNodes; for (var l=0;l < 2;l++){ catnameInnerText = catnameLi[l].innerText; var catnameText01 = ['グルメ','カフェ/喫茶','ファーストフード','中華/ラーメン','和食','居酒屋/バー','洋食','焼肉/韓国料理/エスニック']; catnameText02 = ['ライフスタイル','アミューズメント/ホビー','カラオケ/ライブハウス','カルチャースクール','映画館/劇場','趣味/生活/占い','音楽/映画/本']; catnameText03 = ["ファッション","ビッグストア","メンズ","レディース","キッズ","ジュエリー/アクセサリー/靴","その他"]; catnameText04 = ["サービス","ビューティー/ヘアサロン","ホテル","メディカル","リラクゼーション","不動産/貸ビル","協力企業","金券ショップ/暮らし/質","銀行"]; s = 0; while(s < 7){ if (catnameInnerText.indexOf(catnameText01[s]) != -1) { catnameLi[0].className = 'catgsfl gourmet'; catnameLi[1].className = 'catgsfl gourmet'; } if (catnameInnerText.indexOf(catnameText02[s]) != -1) { catnameLi[0].className = 'catgsfl lifestyle'; catnameLi[1].className = 'catgsfl lifestyle'; } if (catnameInnerText.indexOf(catnameText03[s]) != -1) { catnameLi[0].className = 'catgsfl clothes'; catnameLi[1].className = 'catgsfl clothes'; } if (catnameInnerText.indexOf(catnameText04[s]) != -1) { catnameLi[0].className = 'catgsfl service'; catnameLi[1].className = 'catgsfl service'; } s++; } } i++; } </script> <?php get_footer(); ?> コード