Фильтрация исходящих пользовательских данных поля

Я хочу достичь плана расписания в своем интерфейсе. Я не могу просматривать информацию, основанную на Дне. Например, в бэкэнд строка для вторника, но ее рендеринг на столбе в понедельник в интерфейсе. Я хочу это как, поэтому запись за каждый день идет в соответствующий столбец и соответствующее время. См. Снимок и мой код ниже.

Внешний интерфейс Внешний интерфейс

Back-End Back-End

<div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <td></td> <td>MONTAG</td> <td>DIENSTAG</td> <td>MITTWOCH</td> <td>DONNERSTAG</td> <td>FREITAG</td> <td>SAMSTAG</td> <td>SONNTAG</td> </tr> </thead> <?php while(have_rows('tag')) :the_row(); ?> <tr> <td><?php echo get_sub_field('uhrzeit'); ?></td> <td> <?php $aufguss_object = get_sub_field('aufguss');?> <?php $sauna_object = get_sub_field('sauna');?> <?php if($aufguss_object) { ?> <?php $post = $aufguss_object; ?> <?php setup_postdata( $post ); ?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></br> <?php wp_reset_postdata(); ?> <?php } ?> <?php if($sauna_object) { ?> <?php $post = $sauna_object; ?> <?php setup_postdata( $post ); ?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></br> <?php wp_reset_postdata(); ?> <?php } ?> </td> </tr> <?php endwhile; ?> 

Solutions Collecting From Web of "Фильтрация исходящих пользовательских данных поля"

Это немного сложнее. Сначала вы должны сначала пропустить элементы, и создать двухмерный массив, содержащий день недели и время.

 $entries = array(); while ( have_rows('tag') ) : the_row(); //clean thisentry $thisentry = array(); // set aufguss and sauno for thisentry $thisentry['aufguss'] = get_sub_field('aufguss'); $thisentry['sauna'] = get_sub_field('sauna'); // populate array for wochentag/uhrzeit $entries[get_sub_field('wochentag')][get_sub_field('uhrzeit')] = $thisentry; endwhile; 

Теперь вы можете определить свои будни и время, например:

 $wochentage = array( 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'freitag', 'Samstag', 'Sonntag' ); $uhrzeiten = array( '11:00', '11:30', '12:00', '12:30' ); 

И начните строить таблицу, делая вложенную петлю через время и дни. Сначала прокручиваю время, поэтому я могу построить строки таблицы.

Например, мое время имеет значение 11:00 , и я прохожу через все дни и добавляю запись каждого дня в течение времени 11:00 в новую строку таблицы.

Каждый раз я создаю дополнительную ячейку с самим временем, и каждый день добавляю еще одну ячейку в свою первую строку, поэтому я получаю полную таблицу и добавляю ее вместе, чтобы создать полную таблицу. Эхо это и вуаля 🙂

Весь прокомментированный код:

 $entries = array(); while ( have_rows('tag') ) : the_row(); //clean thisentry $thisentry = array(); // set aufguss and sauno for thisentry $thisentry['aufguss'] = get_sub_field('aufguss'); $thisentry['sauna'] = get_sub_field('sauna'); // populate array for wochentag/uhrzeit $entries[get_sub_field('wochentag')][get_sub_field('uhrzeit')] = $thisentry; endwhile; $wochentage = array( 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'freitag', 'Samstag', 'Sonntag' ); $uhrzeiten = array( '11:00', '11:30', '12:00', '12:30' ); //create first cell of heading line $thead.= '<tr><td>&nbsp</td>'; // loop through each line of the output foreach( $uhrzeiten as $uhrzeit ) { // create new line with first cell of time $lines.= '<tr><td>' . $uhrzeit . '</td>'; // loop through each day foreach( $wochentage as $wochentag ) { //create day cell of heading line $thead.= '<td>' . $wochentag . '</td>'; //create the elements $aufguss = ""; $sauna = ""; if( $entries[$wochentag][$uhrzeit]['aufguss'] ) { $thisaufguss = get_post( $entries[$wochentag][$uhrzeit]['aufguss'] ); $aufguss = '<a href="' . get_permalink( $thisaufguss->ID ) . '">' . $thisaufguss->post_title . '</a><br />'; } if( $entries[$wochentag][$uhrzeit]['sauna'] ) { $thissauna = get_post( $entries[$wochentag][$uhrzeit]['sauna'] ); $sauna = '<a href="' . get_permalink( $thissauna->ID ) . '">' . $thissauna->post_title . '</a><br />'; } // add the entry to the lines $lines.= '<td>' . $aufguss . $sauna . '</td>'; } //close the line $lines.= '</tr>'; } //close heading line $thead.= '</tr>'; //create the table $table = '<table>' . $thead . $lines . '</table>'; echo $table;