Как создать страницу для всех записей из Custom Post Type?

Чтобы создать страницу для всех записей из Custom Post Type в PHP, вам понадобится использовать два основных шага: регистрацию типа записи и создание шаблона страницы.

Шаг 1: Регистрация типа записи

1. Откройте файл functions.php вашей темы WP или создайте новый файл и подключите его в функции вашей темы.
2. Используйте функцию register_post_type() для создания нового типа записи и указания необходимых параметров. Например, если вы хотите создать тип записи "Продукты", ваш код может выглядеть так:

function custom_post_type() {
    $args = array(
        'public' => true,
        'label' => 'Продукты',
        'supports' => array('title', 'editor', 'thumbnail'),
    );
    register_post_type('products', $args);
}
add_action('init', 'custom_post_type');

3. Сохраните файл и обновите ваш сайт WP. Теперь у вас есть новый тип записи.

Шаг 2: Создание шаблона страницы

1. Создайте новый файл в папке вашей темы с расширением .php. Назовите его, например, archive-products.php.
2. В начале файла добавьте комментарий, чтобы указать WordPress, что это шаблон страницы для типа записи "Продукты". Например:

<?php
/*
Template Name: Архив Продуктов
*/

3. Далее добавьте следующий код для отображения всех записей из типа записи "Продукты":

<?php
$args = array(
    'post_type' => 'products',
    'posts_per_page' => -1, // Вывести все записи в архиве
);
$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        ?>
        <h2><?php the_title(); ?></h2>
        <div class="entry-content">
            <?php the_content(); ?>
        </div>
        <?php
    }
}
?>

4. Сохраните файл и обновите ваш сайт. Теперь, если вы создадите новую страницу и выберете шаблон "Архив Продуктов", на этой странице будут отображаться все записи из вашего типа записи "Продукты".

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