corasao
@corasao
Начинающий web разработчик

Как вывести записи на еще одной странице?

Делаю сайт школы. Есть страница - "Учителя", на которой, соответственно, должны быть все учителя школы.
Я специально под это дело зарегистрировал новое поле записей через register_post_types.
Создал в ACF для этого типа записи поля. Добавил по этому шаблону всех учителей. И на странице "Учителя" все это дело прекрасно выводится через обычный цикл.

<?php
      $myposts = get_posts( array(
	      'numberposts' => -1,
    	  'post_type'    => 'teacher',
        ) );
        foreach( $myposts as $post ){
	        setup_postdata( $post );
        ?>
	      <li class="our-teachers__item">
          <img class="our-teachers__img" src="<?php the_field('teacher_img'); ?>" alt="Фото вчителя в Best School">
          <div class="our-teachers__content">
            <h5 class="our-teachers__subtitle"><?php the_field('teacher_name'); ?></h5>
            <h6 class="our-teachers__position"><?php the_field('teacher_position'); ?></h6>
            <p class="our-teachers__desc">
            <?php the_field('teacher_desc'); ?>
            </p>
          </div>
        </li>
        <?php
        }
        wp_reset_postdata(); 
      ?>

И теперь замечаю следующее. На главной странице стайта есть секция, в которой выводится всегда только 3 учителя, ну и кнопка(ссылка на страницу "Учителя"). И так как главную страницу я делал в первую очередь, то для этих 3-х учителей я делал отдельно через ACF вкладку и поля. И тут замечаю, что зачем вводить с админки сайта еще раз все данные по 3-м учителям, если они и так уже есть на странице "Учителя"?

Нашел как можно выводить рандомно 3 учителя на главной странице и делаю это с помощью кода

<?php
      $myposts = get_posts( array(
	      'posts_per_page' => 3, 
        'orderby' => 'rand',
    	  'post_type'    => 'teacher',
        ) );
        foreach( $myposts as $post ){
	        setup_postdata( $post );
        ?>
	      <li class="our-teachers__item">
          <img class="our-teachers__img" src="<?php the_field('teacher_img'); ?>" alt="Фото вчителя в Best School">
          <div class="our-teachers__content">
            <h5 class="our-teachers__subtitle"><?php the_field('teacher_name'); ?></h5>
            <h6 class="our-teachers__position"><?php the_field('teacher_position'); ?></h6>
          </div>
        </li>
        <?php
        }
        wp_reset_postdata(); 
      ?>

Но тут захотелось сделать больше маневренности, чтобы контент менеджер через админку выбирал и выводил именно тех 3-х учителей, которых он хочет.
В ACF добавил 3 поля со значениями Post Object, сделал чтобы выбор был только с записей с учителями.
В админке выглядит все отлично https://monosnap.com/file/GcU6g1klQCNpqy3xkvQvhBps...
Но столкнулся с проблемой: как это теперь вывести на страницу с помощью php кода?
Скорее всего ответ будет элементарным, но в силу того что я только начинаю работу с WP (и php соответственно)- у меня возникли проблемы. Пробовал и просто the_filed, и get_post(s), какие-то циклы находил в тч на вп каме. Безуспешно.
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 2
@FKV
По вопросу того как ты хочешь сделать не подскажу, но я бы сделал у учителей просто чекбокс (показывать на главной странице) и потом выводил на главной учителей, у которых выбрана эта опция.
Ответ написан
Комментировать
corasao
@corasao Автор вопроса
Начинающий web разработчик
Всем большое спасибо!

Учел все замечания и пожелания.

Решил вопрос с помощью перехода в ACF с Post Object на Relationship.
Выставил нужные условия и все работает как я задумал.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы