WPのカスタム投稿で、会社名リスト一覧を固定ページで出力し
50音順に見出し付きで表示させたいのですが、うまくいきません。。
参考
http://creatornote.nakweb.com/title_abc/
https://hp-maruwakari.com/wp-aiueo/
上記のような例です。
PHP、WP初学者で、教えていただけると大変ありがたいです。
PHP
1<article id="article" class="clearfix"> 2 3 <?php 4 $furigana = 'kana'; // acfのフィールド名 5 6 $en_abcd = "/[abcd]/"; 7 $en_efgh = "/[efgh]/"; 8 $en_ijkl = "/[ijkl]/"; 9 $en_mnop = "/[mnop]/"; 10 $en_qrst = "/[qrst]/"; 11 $en_uvwxyz = "/[uvwxyz]/"; 12 13 $jp_agyo = "/[あいうえお]/"; 14 $jp_kagyo = "/[かきくけこがぎぐげご]/"; 15 $jp_sagyo = "/[さしすせそざじずぜぞじゃじゅじょ]/"; 16 $jp_tagyo = "/[たちつてとだぢづでど]/"; 17 $jp_nagyo = "/[なにぬねの]/"; 18 $jp_hagyo = "/[はひふへほばびぶべぼぱぴぷぺぽびゅ]/"; 19 $jp_magyo = "/[まみむめも]/"; 20 $jp_yagyo = "/[やゆよ]/"; 21 $jp_ragyo = "/[らりるれろ]/"; 22 $jp_wagyo = "/[わをん]/"; 23 24 $mojilist = array($en_abcd,$en_efgh,$en_ijkl,$en_mnop,$en_qrst,$en_uvwxyz,$jp_agyo,$jp_kagyo,$jp_sagyo,$jp_tagyo,$jp_nagyo,$jp_hagyo,$jp_magyo,$jp_yagyo,$jp_ragyo,$jp_wagyo); 25 $mojilabel = array("A-D","E-H","I-L","M-P","Q-T","U-Z","あ行","か行","さ行","た行","な行","は行","ま行","や行","ら行","わ行"); 26 27 $args = array( 28 'post_type' => 'suppliers', //カスタム投稿タイプ名 29 'posts_per_page' => -1, // 表示件数 30 'meta_key' => $furigana, // カスタムフィールドキー 31 'orderby' => 'meta_value', // meta_valueの値で並べる 32 'order' => 'ASC', // 昇順で順序付け 33 ); 34 35 $wp_query = new WP_Query($args); 36 37 $i = 0; 38 39 if( $wp_query->have_posts()): while ( $wp_query->have_posts() ): $wp_query->the_post(); 40 41 $first_word = the_field($furigana); 42 $first_word = mb_substr($first_word, 0, 1); 43 foreach ($mojilist as $value): 44 if(strpos($value, $first_word)): 45 //見出しをつける 46 $arrayindex = array_search($value, $mojilist); 47 if($i == 0){ 48 //最初のみ 49 echo '<h2>'. $mojilabel[$arrayindex] .'</h2><ul>'; 50 ${"count".$arrayindex} = ${"count".$arrayindex} + 1; 51 $i = $i + 1; 52 }else{ 53 if(${"count".$arrayindex} == 0){ 54 echo '</ul><h2>'. $mojilabel[$arrayindex] .'</h2><ul>'; 55 } 56 ${"count".$arrayindex} = ${"count".$arrayindex} + 1; 57 } 58 ?> 59 <ul> 60 <li><a href="<?php the_field('url'); ?>"><?php the_title(); ?></a><span><?php the_field($furigana) ?></span></li> 61 <?php endif; endforeach; endwhile; ?> 62 </ul><?php if ( $wp_query->have_posts() ): ?></ul><?php endif; ?> 63<?php endif; ?> 64 65 </article><!-- END #article -->
回答2件
あなたの回答
tips
プレビュー