WordPressのループで取得したデータを一つの表で表示したいのですが…
制作している内容は
個人別イベント一覧を制作しております。
カスタムフィールドで日付を入力して該当する日付にカスタム投稿のタイトルを表示する
物なのですが各イベントごとでカスタム投稿を分けているため、ループで取得すると各イベント事で表が出来てしまいます。
一つの表で表示することは出来ないのでしょうか?
該当のソースコード
wordpress
1------ 2カスタムフィールド名 3'eva1'= 2019 4'eva2'= 1月~12月 5'eva3'= 1~31日 6がそれぞれ入ります。 7------ 8<?php 9$days = get_post_meta( $post->ID , 'cal'.date("Y").'1' , 'foo', true );//数値を取り出す 10$days_array = explode(',', $days);//arrayに取り出した数値を入れる 11sort($days_array);//取り出した数値を並び替える 12$days_com = array_combine($days_array, $days_array);//配列の値にキー値を入れる 13?> 14<?php 15$searchSlugs = get_the_terms($post->ID, 'manekin_tag'); 16foreach ( $searchSlugs as $searchSlug ); 17echo $searchSlug->slug; 18$args = array( 19 'tax_query' => array( 20 array( 21 'taxonomy' => 'manekin_tag', //タクソノミーを指定 22 'field' => 'slug', //ターム名をスラッグで指定する 23 'terms' => $searchSlug->slug //表示したいタームをスラッグで指定 24 ), 25 ), 26 'post_type' => 'monamiorder', //カスタム投稿名 27 'posts_per_page'=> -1, //表示件数(-1で全ての記事を表示) 28 'order' => 'ASC' //表示順(昇順) 29); 30?> 31<?php query_posts( $args ); ?> 32<?php if(have_posts()) : ?> 33<table> 34<?php while(have_posts()):the_post() ?> 35 <?php 36 $calendar1 = date("Y").'1'; 37 $work_calendar = get_post_meta( $post->ID , 'eva1' , 'foo', true ).get_post_meta( $post->ID , 'eva2' , 'foo', true ); 38 if( $calendar1 == $work_calendar ){ 39 $works = get_post_meta( $post->ID , 'eva3' , 'foo', true );//数値を取り出す 40 } 41 $works_array = explode(',', $works);//arrayに取り出した数値を入れる 42 sort($works_array);//取り出した数値を並び替える 43 $works_com = array_combine($works_array, $works_array);//配列の値にキー値を入れる 44 print_r($works_com); 45 ?> 46 <tr> 47 <th colspan="2"><?php echo date("Y");?>年 1月</th> 48 </tr> 49 <?php 50 for($i=1; $i<=31; $i++){ 51 echo '<tr>'; 52 echo '<th>'.$i.'日</th>'; 53 if($i == $days_com[$i]){ 54 echo '<td>休日</td>'; 55 }elseif($i == $works_com[$i]){ 56 echo '<td>'; 57 echo the_title(); 58 echo '</td>'; 59 }else{ 60 echo '<td></td>'; 61 } 62 echo '</tr>'; 63 } 64 ;?> 65<?php endwhile; ?> 66</table> 67<?php else: ?> 68<p>該当する記事はありません。</p> 69<?php endif; ?> 70<table> 71 <?php 72 for($i=1; $i<=31; $i++){ 73 echo '<tr>'; 74 echo '<th>'.$i.'日</th>'; 75 if($i == $days_com[$i]){ 76 echo '<td>休日</td>'; 77 }elseif($i == $works_com[$i]){ 78 echo '<td>'; 79 echo the_title(); 80 echo '</td>'; 81 }else{ 82 echo '<td></td>'; 83 } 84 echo '</tr>'; 85 } 86 ;?> 87</table> 88
試したこと
php並びにwordpressは仕事でかじった程度で2,3か月前にカスタム投稿を知り得た程度です。
ネットで検索しても同じような結果でしか検索されず困っています。
ループ処理後のarray結合や新しいキーに代入する方法で検索し変更したものの上手くいきませんでした。
補足情報(FW/ツールのバージョンなど)
WordPressは最新バージョンにしています。
あなたの回答
tips
プレビュー