@thedexploit
Сайтами маюсь

Как создать блок последних записей в произвольном типе записей?

Есть произвольный тип записи - Афиша. В нем есть рубрики: Кинотеатры, Театры, Спорт, События
Хочу вывести на главную страницу блоки с последними публикациями. (пример на рисунке)
Каждый блок состоит из нескольких табов, с переключением рубрик произвольных записей.

Так же на странице будут подобные блоки с другими типами записей (Заведения: кафе рестораны и т.д.)
Главную страницу создавал отдельно, задал новый шаблон страниц и в нем сверстал. Так что можно добавить любые коды.


Как можно вывести данные таким образом?
1ba4c13cb8d34343b8a635f567fc1cd9.png
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
Вот здесь вывод бутсроповских табов с названиями Терминов из кастомной таксономии, а потом с постами из них, кастомизируйте как вам надо
<ul class="nav nav-tabs" role="tablist">
                                <li role="presentation" class="active"><a href="#projects" aria-controls="projects" role="tab" data-toggle="tab">Все проекты</a></li>


                                <?php
                                $args = array(
                                    'taxonomy' => 'afisha_kat', 
                                    'hide_empty' => true,
                                );
                                $terms = get_terms( $args );
                                foreach ($terms as $term) { ?>
                                    <li role="presentation"><a href="#<?php echo $term->slug;?>" aria-controls="<?php echo $term->slug;?>" role="tab" data-toggle="tab"><?php echo $term->name; ?></a></li>
                                <?php }?>
                            </ul>
                        <div class="tab-content">
                            <div role="tabpanel" class="tab-pane active" id="projects">
                                <?php
                                $args = array(
                                    'post_type' => 'afisha', 
                                    'posts_per_page' => 8,
                                );
                                $query = new WP_Query( $args );
                                if ( $query->have_posts() ) : ?>
                                            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                                                    <a href="<?php the_permalink();?>">
                                                        <figure class="project-thumb">
                                                            <?php the_post_thumbnail()?>
                                                        </figure>
                                                        <p class="project-descr">
                                                            <?php the_title();?>
                                                        </p>
                                                    </a>
                                            <?php endwhile; ?>
                                    </div>
                                <?php
                                endif; wp_reset_postdata(); ?>
                            </div>
                            <?php
                            $args = array(
                                'taxonomy' => 'afisha_kat',
                                'hide_empty' => true,
                            );
                            $terms = get_terms( $args );
                            foreach ($terms as $term) { ?>
                                <div role="tabpanel" class="tab-pane" id="<?php echo $term->slug;?>">
                                    <div class="projects-grid">
                                        <ul class="project-tabs-items">
                                            <?php
                                            $args = array(
                                                'post_type' => 'afisha',
                                                'posts_per_page' => 3,
                                                'tax_query' => array(
                                                    array(
                                                        'taxonomy' => 'afisha_kat', 
                                                        'field'    => 'slug',
                                                        'terms'    => $term->slug,
                                                    )
                                                )
                                            );
                                            $query = new WP_Query( $args );
                                            if ( $query->have_posts() ) : ?>
                                                <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                                                    <li>
                                                        <a href="<?php the_permalink();?>">
                                                            <figure class="project-thumb">
                                                                <?php the_post_thumbnail('project-thumb')?>
                                                            </figure>
                                                            <p class="project-descr">
                                                                <?php the_title();?>
                                                            </p>
                                                        </a>
                                                    </li>
                                                <?php endwhile; ?>
                                            <?php
                                            endif; wp_reset_postdata(); ?>
                                        </ul>
                                    </div>
                                </div>
                            <?php } ?>
                        </div>

В первой табе выводятся 8 последних постов из всех терминов таксономии, в последующих - по 3 из каждой.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы