Отображение пользовательских типов записей на фронтенде

1 дек. 2014 г., 07:36:28
Просмотры: 17K
Голосов: 0

Я пытаюсь разобраться с пользовательскими типами записей. Моя цель - создать простой список филиалов. В меню "Дилеры" есть выпадающие списки с регионами. При клике на регион нужно отображать список филиалов в этом регионе. Ничего сложного - без карт, просто текст с названием филиала и контактными данными + адресом. Примерно так:

Название филиала
Контактное лицо
Адрес
Контактный номер


Название филиала 2
Контактное лицо 2
Адрес 2
Контактный номер 2

Я использовал плагин Custom Post Type UI и другой плагин для добавления этих данных в админке. Но никак не могу понять, как вывести их на фронтенде.

Мне не нужно, чтобы это вело себя как обычные записи - с общим списком и переходом на страницу для деталей. Нужно просто отображать как в примере выше при клике на регион из выпадающего списка. Есть ли плагин для этого или нужно писать код вручную?

3
Комментарии

Вам нужно создать архив пользовательского типа записи в вашей теме, например: archive-{$post-type}.php. Это основное. :)

Mayeenul Islam Mayeenul Islam
1 дек. 2014 г. 07:55:11

Вы создали CPT и произвольные поля с помощью плагина?

Brad Dalton Brad Dalton
1 дек. 2014 г. 10:44:37

Привет. Да, я использовал плагин. Думаю, это был Custom Post UI

Iggy's Pop Iggy's Pop
1 дек. 2014 г. 22:08:35
Все ответы на вопрос 3
1

Вы можете легко сделать это следующим образом - просто дублируйте файл single.php и переименуйте его в single-custom-post-type-name.php, например single-cars.php. То же самое относится к архивам или таксономиям: taxonomy-taxonomy-name.php или archive-taxonomy-name.php.

Или вы можете создать собственный запрос для случайной страницы, главной страницы или блога:

<?php
// Запрос
$query = new WP_Query(array('post_type' => 'your-custom-post'));
query_posts( $query );

// Цикл
while ( $query->have_posts() ) : $query->the_post();  
  // ваш контент записи (заголовок, отрывок, миниатюра...)
endwhile;

// Сброс запроса
wp_reset_query();
?>

Удачи! ;)

1 дек. 2014 г. 10:31:24
Комментарии

Спасибо, я попробую это в ближайшие день-два. Большое спасибо за ваш ответ.

Iggy's Pop Iggy's Pop
1 дек. 2014 г. 22:09:37
1
?php while (have_posts()) : the_post(); ?>
<?php
    $args = array('post_type' => 'employee', 'posts_per_page' => 10);
    $the_query = new WP_Query($args);
    ?>
    <?php if ($the_query->have_posts()) : ?>
      <?php while ($the_query->have_posts()) : $the_query->the_post();?>

        <?php endwhile;
        wp_reset_postdata(); ?>
    <?php else :  ?>
        <p><?php _e('Извините, нет записей, соответствующих вашим критериям.'); ?></p>
    <?php endif; ?>
<?php
endwhile;
?>
12 окт. 2021 г. 12:10:16
Комментарии

Я не совсем понимаю, что происходит здесь: у вас есть основной цикл в первой и последней строках, и отдельный цикл для вывода тех же первых 10 сотрудников между каждым постом в основном цикле?

Rup Rup
13 окт. 2021 г. 12:31:21
1

Попробуйте и удачи



$args = array(
    'post_type' => 'your custom post name',
    'post_status' => 'publish',
    'posts_per_page' => 10,
);
$arr_posts = new WP_Query( $args );

if ( $arr_posts->have_posts() ) :
while ( $arr_posts->have_posts() ) :
$arr_posts->the_post();
    echo the_title(); 
endwhile;endif;
wp_reset_postdata();

12 окт. 2021 г. 14:27:05
Комментарии

Ваш ответ можно улучшить, добавив дополнительную подтверждающую информацию. Пожалуйста, [отредактируйте] его, чтобы добавить больше деталей, таких как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы, в справочном центре.

User User
13 окт. 2021 г. 14:56:30