Кастомные типы записей и таксономии — это способ добавить уникальные структуры контента на ваш WordPress-сайт, помимо стандартных записей и страниц. Например, для сайта о кино можно создать кастомный тип записей для «Фильмы» и таксономии для их «Жанров» и «Режиссеров». В этом руководстве разберем, как создать кастомные типы записей и таксономии в WordPress, от базовой настройки до добавления в админку и настройки шаблонов отображения.
Шаг 1: Понимание кастомных типов записей и таксономий
Кастомные типы записей (Custom Post Types) позволяют добавить новый тип содержимого на сайт. Примеры: «Портфолио», «Продукты», «Рецепты».
Таксономии (Taxonomies) — это категории и метки для организации кастомных записей, которые могут быть общими для нескольких типов записей или уникальными.
Шаг 2: Создание кастомного типа записи
Для создания кастомного типа записи используется функция register_post_type()
. Эта функция обычно добавляется в файл functions.php
вашей темы или в отдельный файл, если вы работаете с дочерней темой или создаете плагин.
Пример: Создадим кастомный тип записи для «Фильмы»
- Откройте файл
functions.php
вашей темы. - Добавьте следующий код для регистрации кастомного типа записи:
function create_movie_post_type() { $labels = [ 'name' => 'Фильмы', 'singular_name' => 'Фильм', 'menu_name' => 'Фильмы', 'name_admin_bar' => 'Фильм', 'add_new' => 'Добавить новый', 'add_new_item' => 'Добавить новый фильм', 'new_item' => 'Новый фильм', 'edit_item' => 'Редактировать фильм', 'view_item' => 'Просмотр фильма', 'all_items' => 'Все фильмы', 'search_items' => 'Поиск фильмов', 'not_found' => 'Фильмы не найдены.', 'not_found_in_trash' => 'В корзине фильмов не найдено.' ]; $args = [ 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => ['slug' => 'movies'], 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => ['title', 'editor', 'thumbnail', 'excerpt', 'comments'] ]; register_post_type('movie', $args);}add_action('init', 'create_movie_post_type');
Разбор кода:
labels
: Задает названия для различных элементов интерфейса в админке.public
: Делает тип записи публичным.rewrite
: Определяет «слаг» для URL (в данном случае будетsite.com/movies
).supports
: Задаёт поддержку для стандартных функций WordPress (заголовок, контент, миниатюры и т.д.).
Шаг 3: Создание кастомной таксономии
Таксономии помогают организовать записи внутри кастомных типов. Кастомные таксономии могут быть иерархическими (как категории) или неиерархическими (как метки).
Пример: Добавим кастомную таксономию «Жанры» для фильмов
В том же файле functions.php
добавьте следующий код:
function create_movie_taxonomies() { $labels = [ 'name' => 'Жанры', 'singular_name' => 'Жанр', 'search_items' => 'Найти жанры', 'all_items' => 'Все жанры', 'parent_item' => 'Родительский жанр', 'parent_item_colon' => 'Родительский жанр:', 'edit_item' => 'Редактировать жанр', 'update_item' => 'Обновить жанр', 'add_new_item' => 'Добавить новый жанр', 'new_item_name' => 'Название нового жанра', 'menu_name' => 'Жанры' ]; $args = [ 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => ['slug' => 'genre'] ]; register_taxonomy('genre', ['movie'], $args);}add_action('init', 'create_movie_taxonomies');
Разбор кода:
hierarchical
: Определяет, будет ли таксономия иерархической (категории) или плоской (метки).rewrite
: Задаёт «слаг» для URL, по которому можно будет отфильтровать записи.show_admin_column
: Добавляет столбец с таксономией в список записей.
Шаг 4: Настройка кастомных таксономий в админке
Теперь в разделе «Фильмы» появится таксономия «Жанры», через которую можно будет добавлять и редактировать жанры фильмов. Это позволяет разделить записи по жанрам.
Шаг 5: Вывод кастомных типов записей и таксономий на сайте
Чтобы отобразить кастомные типы записей и таксономии на сайте, можно создать шаблоны или использовать цикл WordPress (WP_Query
).
Пример: Создание архива для фильмов
- Создайте файл
archive-movie.php
в вашей теме. - Добавьте код для вывода всех записей типа «Фильмы»:
Фильмы
Пример: Вывод фильмов по жанру:
'movie', 'tax_query' => [ [ 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => $genre->slug ] ]];$query = new WP_Query($args);if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?>
Шаг 6: Настройка ссылок и постоянных страниц для кастомных типов записей и таксономий
Чтобы ссылки на кастомные типы записей работали корректно, рекомендуется обновить структуру постоянных ссылок:
- Перейдите в Настройки -> Постоянные ссылки.
- Нажмите Сохранить изменения (без изменения структуры) — это обновит правила.
Шаг 7: Расширенные настройки и улучшения
- Кастомные поля — можно добавить дополнительные поля для типа записи, например, с помощью плагина ACF.
- Роли и доступ — настройте, кто может видеть и управлять кастомными записями и таксономиями.
Создание кастомных типов записей и таксономий в WordPress открывает широкие возможности для создания уникального контента и помогает лучше организовать его структуру на сайте!
Написать комментарий