У меня есть страница с 4 вкладками начальной загрузки. Каждая вкладка должна содержать персонализированные сообщения типа post, относящиеся к другой категории. 4 категории, 4 вкладки. Это должно быть очень просто, используя in_category (); но по какой-то причине я могу фильтровать только первую вкладку. Остальные три вкладки вообще не показывают сообщений.
Пожалуйста, ознакомьтесь с этим вопросом для моего подхода: Создание if-операторов для фильтрации сообщений по категориям из cpt в wordpress
Вот код из archive-journal.php, где журнал – мой cpt. Я использую расширенные настраиваемые поля.
PHP
<!-- Tab panes --> <div class="tab-content"> <?php if ( have_posts() ) : ?> <!-- cambridge winter college --> <div role="tabpanel" class="tab-pane active" id="tab1"> <!-- accordian --> <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> <?php $entry_count = 0; ?> <?php while ( have_posts() ) : the_post(); ?> <?php if (in_category('cambridge-winter-college')) : ?> <?php $entry_count++; ?> <!-- entry --> <div class="entry"> <div class="col-lg-3 date"> <time class="cbp_tmtime"><span><?php the_field( 'day' ); ?></span><br> <span><?php the_field( 'date' ); ?><sup><?php the_field( 'suffix' ); ?></sup> <?php the_field( 'month' ); ?></span> </time> <div class="cbp_tmicon"></div> </div> <div class="panel-heading panel-head col-lg-9"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse-cw-<?php echo $entry_count; ?>"> View <?php the_field( 'day' ); ?>'s journal entry </a> </div> <div id="collapse-cw-<?php echo $entry_count; ?>" class="panel-collapse collapse in col-lg-12 pull-right"> <div class="panel-body col-lg-9 pull-right"> <div class="row"> <div class="col-lg-12 entry-text"> <aside class="col-lg-6 pull-right flexbox-2"> <div class="schedule" > <?php $table = get_field( 'schedule' ); if ( $table ) { echo '<table>'; if ( $table['header'] ) { echo '<thead><tr>'; echo ''; foreach ( $table['header'] as $th ) { echo '<th>'; echo $th['c']; echo '</th>'; } echo '</tr>'; echo '</thead>'; } echo '<tbody>'; foreach ( $table['body'] as $tr ) { echo '<tr>'; foreach ( $tr as $td ) { echo '<td>'.$td['c'].'</td>'; } echo '</tr>'; } echo '</tbody>'; echo '</table>'; } ?> </div> <?php if (the_field('fun_fact')) { ?> <div class="fun-fact" style=""> <?php the_field( 'fun_fact' ); ?> </div> <?php } ?> </aside> <div class="flexbox-1"> <?php the_field( 'entry_text' ); ?> </div> </div> </div> <div class="row carousel-wrapper"> <div id="carousel-cw-<?php echo $entry_count; ?>" class="carousel slide" data-ride="carousel"> <div class="carousel-inner" role="listbox"> <?php if ( have_rows( 'slider' ) ) : ?> <?php $image_count = 0 ?> <?php while ( have_rows( 'slider' ) ) : the_row(); ?> <?php $image_count++; ?> <?php if ( get_sub_field( 'image') ) { ?> <div class="item <?php if ($image_count == 1) echo 'active' ?>"> <img src="<?php the_sub_field( 'image' ); ?>" title=""> <figcaption><?php the_sub_field( 'caption' ); ?></figcaption> </div> <?php } ?> <?php endwhile; ?> <?php else : ?> <?php // no rows found ?> <?php endif; ?> <a class="left carousel-control" href="#carousel-cw-<?php echo $entry_count; ?>" role="button" data-slide="prev"> <span class="fa fa-chevron-left glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-cw-<?php echo $entry_count; ?>" role="button" data-slide="next"> <span class="fa fa-chevron-right glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <!-- / carousel --> </div> </div> </div> </div> </div> <!-- /entry --> <?php endif; ?> <?php endwhile; ?> </div> <!-- / accordian --> <div class="terminator"></div> </div> <!-- / cambridge winter college --> <!-- oxford summer 1 --> <div role="tabpanel" class="tab-pane" id="tab2"> <!-- accordian --> <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> <?php $entry_count = 0; ?> <?php while ( have_posts() ) : the_post(); ?> <?php if (in_category('oxford_summer_college_1')) : ?> <?php $entry_count++; ?> <!-- entry --> <div class="entry"> <div class="col-lg-3 date"> <time class="cbp_tmtime"><span><?php the_field( 'day' ); ?></span><br> <span><?php the_field( 'date' ); ?><sup><?php the_field( 'suffix' ); ?></sup> <?php the_field( 'month' ); ?></span> </time> <div class="cbp_tmicon"></div> </div> <div class="panel-heading panel-head col-lg-9"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse-os1-<?php echo $entry_count; ?>"> View <?php the_field( 'day' ); ?>'s journal entry </a> </div> <div id="collapse-os1-<?php echo $entry_count; ?>" class="panel-collapse collapse in col-lg-12 pull-right"> <div class="panel-body col-lg-9 pull-right"> <div class="row"> <div class="col-lg-12 entry-text"> <aside class="col-lg-6 pull-right flexbox-2"> <div class="schedule" > <?php $table = get_field( 'schedule' ); if ( $table ) { echo '<table>'; if ( $table['header'] ) { echo '<thead><tr>'; echo ''; foreach ( $table['header'] as $th ) { echo '<th>'; echo $th['c']; echo '</th>'; } echo '</tr>'; echo '</thead>'; } echo '<tbody>'; foreach ( $table['body'] as $tr ) { echo '<tr>'; foreach ( $tr as $td ) { echo '<td>'.$td['c'].'</td>'; } echo '</tr>'; } echo '</tbody>'; echo '</table>'; } ?> </div> <div class="fun-fact" style=""> <?php the_field( 'fun_fact' ); ?> </div> </aside> <div class="flexbox-1"> <?php the_field( 'entry_text' ); ?> </div> </div> </div> <div class="row carousel-wrapper"> <div id="carousel-os1-<?php echo $entry_count; ?>" class="carousel slide" data-ride="carousel"> <div class="carousel-inner" role="listbox"> <?php if ( have_rows( 'slider' ) ) : ?> <?php $image_count = 0 ?> <?php while ( have_rows( 'slider' ) ) : the_row(); ?> <?php $image_count++; ?> <?php if ( get_sub_field( 'image') ) { ?> <div class="item <?php if ($image_count == 1) echo 'active' ?>"> <img src="<?php the_sub_field( 'image' ); ?>"> <figcaption><?php the_sub_field( 'caption' ); ?></figcaption> </div> <?php } ?> <?php endwhile; ?> <?php else : ?> <?php // no rows found ?> <?php endif; ?> <a class="left carousel-control" href="#carousel-os1-<?php echo $entry_count; ?>" role="button" data-slide="prev"> <span class="fa fa-chevron-left glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-os1-<?php echo $entry_count; ?>" role="button" data-slide="next"> <span class="fa fa-chevron-right glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <!-- / carousel --> </div> </div> </div> <!-- </div> --> </div> <!-- /entry --> <?php endif; ?> <?php endwhile; ?> </div> <!-- / accordian --> <div class="terminator"></div> </div> <!-- / oxford summer 1 --> <!-- oxford summer college 2 --> <div role="tabpanel" class="tab-pane" id="tab3"> <!-- accordian --> <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> <?php $entry_count = 0; ?> <?php while ( have_posts() ) : the_post(); ?> <?php if (in_category('oxford_summer_college_2')) : ?> <?php $entry_count++; ?> <!-- entry --> <div class="entry"> <div class="col-lg-3 date"> <time class="cbp_tmtime"><span><?php the_field( 'day' ); ?></span><br> <span><?php the_field( 'date' ); ?><sup><?php the_field( 'suffix' ); ?></sup> <?php the_field( 'month' ); ?></span> </time> <div class="cbp_tmicon"></div> </div> <div class="panel-heading panel-head col-lg-9"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse-os2-<?php echo $entry_count; ?>"> View <?php the_field( 'day' ); ?>'s journal entry </a> </div> <div id="collapse-os2-<?php echo $entry_count; ?>" class="panel-collapse collapse in col-lg-12 pull-right"> <div class="panel-body col-lg-9 pull-right"> <div class="row"> <div class="col-lg-12 entry-text"> <aside class="col-lg-6 pull-right flexbox-2"> <div class="schedule" > <?php $table = get_field( 'schedule' ); if ( $table ) { echo '<table>'; if ( $table['header'] ) { echo '<thead><tr>'; echo ''; foreach ( $table['header'] as $th ) { echo '<th>'; echo $th['c']; echo '</th>'; } echo '</tr>'; echo '</thead>'; } echo '<tbody>'; foreach ( $table['body'] as $tr ) { echo '<tr>'; foreach ( $tr as $td ) { echo '<td>'.$td['c'].'</td>'; } echo '</tr>'; } echo '</tbody>'; echo '</table>'; } ?> </div> <div class="fun-fact" style=""> <?php the_field( 'fun_fact' ); ?> </div> </aside> <div class="flexbox-1"> <?php the_field( 'entry_text' ); ?> </div> </div> </div> <div class="row carousel-wrapper"> <div id="carousel-os2-<?php echo $entry_count; ?>" class="carousel slide" data-ride="carousel"> <div class="carousel-inner" role="listbox"> <?php if ( have_rows( 'slider' ) ) : ?> <?php $image_count = 0 ?> <?php while ( have_rows( 'slider' ) ) : the_row(); ?> <?php $image_count++; ?> <?php if ( get_sub_field( 'image') ) { ?> <div class="item <?php if ($image_count == 1) echo 'active' ?>"> <img src="<?php the_sub_field( 'image' ); ?>"> <figcaption><?php the_sub_field( 'caption' ); ?></figcaption> </div> <?php } ?> <?php endwhile; ?> <?php else : ?> <?php // no rows found ?> <?php endif; ?> <a class="left carousel-control" href="#carousel-os2-<?php echo $entry_count; ?>" role="button" data-slide="prev"> <span class="fa fa-chevron-left glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-os2-<?php echo $entry_count; ?>" role="button" data-slide="next"> <span class="fa fa-chevron-right glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <!-- / carousel --> </div> </div> </div> </div> </div> <!-- /entry --> <?php endif; ?> <?php endwhile; ?> </div> <!-- / accordian --> <div class="terminator"></div> </div> <!-- / oxford summer college 2 --> <!-- cambridge summer college --> <div role="tabpanel" class="tab-pane" id="tab4"> <!-- accordian --> <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> <?php $entry_count = 0; ?> <?php while ( have_posts() ) : the_post(); ?> <?php if (in_category('cambridge_summer_college')) : ?> <?php $entry_count++; ?> <!-- entry --> <div class="entry"> <div class="col-lg-3 date"> <time class="cbp_tmtime"><span><?php the_field( 'day' ); ?></span><br> <span><?php the_field( 'date' ); ?><sup><?php the_field( 'suffix' ); ?></sup> <?php the_field( 'month' ); ?></span> </time> <div class="cbp_tmicon"></div> </div> <div class="panel-heading panel-head col-lg-9"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse-cs-<?php echo $entry_count; ?>"> View <?php the_field( 'day' ); ?>'s journal entry </a> </div> <div id="collapse-cs-<?php echo $entry_count; ?>" class="panel-collapse collapse in col-lg-12 pull-right"> <div class="panel-body col-lg-9 pull-right"> <div class="row"> <div class="col-lg-12 entry-text"> <aside class="col-lg-6 pull-right flexbox-2"> <div class="schedule" > <?php $table = get_field( 'schedule' ); if ( $table ) { echo '<table>'; if ( $table['header'] ) { echo '<thead><tr>'; echo ''; foreach ( $table['header'] as $th ) { echo '<th>'; echo $th['c']; echo '</th>'; } echo '</tr>'; echo '</thead>'; } echo '<tbody>'; foreach ( $table['body'] as $tr ) { echo '<tr>'; foreach ( $tr as $td ) { echo '<td>'.$td['c'].'</td>'; } echo '</tr>'; } echo '</tbody>'; echo '</table>'; } ?> </div> <div class="fun-fact" style=""> <?php the_field( 'fun_fact' ); ?> </div> </aside> <div class="flexbox-1"> <?php the_field( 'entry_text' ); ?> </div> </div> </div> <div class="row carousel-wrapper"> <div id="carousel-cs-<?php echo $entry_count; ?>" class="carousel slide" data-ride="carousel"> <div class="carousel-inner" role="listbox"> <?php if ( have_rows( 'slider' ) ) : ?> <?php $image_count = 0 ?> <?php while ( have_rows( 'slider' ) ) : the_row(); ?> <?php $image_count++; ?> <?php if ( get_sub_field( 'image') ) { ?> <div class="item <?php if ($image_count == 1) echo 'active' ?>"> <img src="<?php the_sub_field( 'image' ); ?>"> <figcaption><?php the_sub_field( 'caption' ); ?></figcaption> </div> <?php } ?> <?php endwhile; ?> <?php else : ?> <?php // no rows found ?> <?php endif; ?> <a class="left carousel-control" href="#carousel-cs-<?php echo $entry_count; ?>" role="button" data-slide="prev"> <span class="fa fa-chevron-left glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-cs-<?php echo $entry_count; ?>" role="button" data-slide="next"> <span class="fa fa-chevron-right glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <!-- / carousel --> </div> </div> </div> </div> </div> <!-- /entry --> <?php endif; ?> <?php endwhile; ?> </div> <!-- / accordian --> <div class="terminator"></div> </div> <!-- /cambridge summer college --> <?php endif; ?> </div> <!-- / tab content -->
Извините за дамп длинного кода, но он в основном тот же и скопирован 4 раза. На самом деле я не вижу, что здесь не так. Любые советы будут очень признательны.