Пользовательские разделы для каждого файла пользовательского типа - PullRequest
0 голосов
/ 29 января 2020

Итак, я пытаюсь добиться этого:

Я создал пользовательские типы записей, и есть один пользовательский тип записей, в котором я хочу переменные разделы. Этот тип записей "рабочая область". Для этого пользовательского типа поста есть четыре поста (главные страницы).

Внизу этих страниц есть раздел связанных постов.

Каждый из них должен содержать разные посты. Но я использую "single-workarea. php" в качестве пользовательского шаблона типа записи. Таким образом, нет способа (по крайней мере, насколько я знаю) создать al oop, который показывает различные связанные посты, которые должны отображаться на странице.

Если я отредактирую это l oop, оно будет применяться (очевидно) ко всем страницам из пользовательского типа записи "workarea".

Есть ли способ создать переменную / настраиваемый раздел в этот тип записи php file?

Решение состоит в том, что я удаляю этот тип записи и просто создаю страницы с именами шаблонов, такими как «workarea», но проблема в том, что когда мой клиент хочет чтобы добавить новый тип записи "workarea", он должен прийти ко мне, чтобы я мог создать новый php файл.

Надеюсь, я дал четкое объяснение.

Спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Итак, я решил эту проблему с помощью поля таксономии расширенных настраиваемых полей.

Теперь это l oop:

<?php
        $relevant = get_field('relevante_posts_categorie');

        $postid = get_the_ID();
        $loop = new WP_Query( array(
            'post_type' => 'actueel',
            'posts_per_page' => 3,
            'category__in' => $relevant,
            'post__not_in'=> array($postid),
          )
        );
        ?>
        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
          <a href="<?php the_permalink();?>">
            <div class="col-lg-3 col-md-3 col-sm-3 col-xs-3 relevant__item">
              <div class="thumbnail__wrapper">
                <div class="thumbnail" style="background-image:url('<?php the_field('thumbnail');?>');"></div>
              </div>
              <div class="title">
                <h4><?php the_title();?></h4>
              </div>
            </div>
          </a>
        <?php endwhile; wp_reset_query(); ?>

Поле таксономии получает выбранную категорию , Теперь можно настроить, какие сообщения я хочу отображать. Осталось только создать несколько циклов запросов, в которых я определяю пользовательские типы сообщений.

Спасибо за помощь.

0 голосов
/ 29 января 2020

Ответ - работа в процессе, основанная на том, о чем мы говорили в разделе комментариев. Мы должны будем постоянно улучшать его, пока не достигнем желаемого результата.

Как описано в разделе комментариев, мы сможем достичь этого с помощью пользовательского l oop.

Если Вы проверяете WP_Query docs , он покажет вам все способы фильтрации поиска по $args массиву

для одной рабочей области. php

<?php 
    // get current post category,
    // assumes there is only ONE category assigned to the current post

    $category = get_the_category( get_the_ID() ); 

    $args = array(        
        'posts_per_page' => -1, // get all posts
        'orderby' => 'random', // randomly get posts
        'post_type' => ['food', 'staff', 'themes'], // search only these post types
        'post_status' => 'published', // only get published posts
        'cat' => $category[0]->term_id // search posts only with this category ID
     );
    $the_query = new WP_Query( $args );

    while ( $the_query->have_posts() ) {
      $the_query->the_post();
      //echo related post data...
      echo '<a href="'. get_permalink() .'">' . get_the_title() . '</a>';
    }

    wp_reset_postdata();
?>

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

...