L o a d i n g
Кастомные типы записей и таксономии в WordPress: Полное руководство для веб-разработчиков Жизнь

Кастомные типы записей и таксономии — это способ добавить уникальные структуры контента на ваш WordPress-сайт, помимо стандартных записей и страниц. Например, для сайта о кино можно создать кастомный тип записей для «Фильмы» и таксономии для их «Жанров» и «Режиссеров». В этом руководстве разберем, как создать кастомные типы записей и таксономии в WordPress, от базовой настройки до добавления в админку и настройки шаблонов отображения.

Шаг 1: Понимание кастомных типов записей и таксономий

Кастомные типы записей (Custom Post Types) позволяют добавить новый тип содержимого на сайт. Примеры: «Портфолио», «Продукты», «Рецепты».

Таксономии (Taxonomies) — это категории и метки для организации кастомных записей, которые могут быть общими для нескольких типов записей или уникальными.

Шаг 2: Создание кастомного типа записи

Для создания кастомного типа записи используется функция register_post_type(). Эта функция обычно добавляется в файл functions.php вашей темы или в отдельный файл, если вы работаете с дочерней темой или создаете плагин.

Пример: Создадим кастомный тип записи для «Фильмы»

  1. Откройте файл functions.php вашей темы.
  2. Добавьте следующий код для регистрации кастомного типа записи:
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).

Пример: Создание архива для фильмов

  1. Создайте файл archive-movie.php в вашей теме.
  2. Добавьте код для вывода всех записей типа «Фильмы»:

Фильмы

Пример: Вывод фильмов по жанру:

 '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: Настройка ссылок и постоянных страниц для кастомных типов записей и таксономий

Чтобы ссылки на кастомные типы записей работали корректно, рекомендуется обновить структуру постоянных ссылок:

  1. Перейдите в Настройки -> Постоянные ссылки.
  2. Нажмите Сохранить изменения (без изменения структуры) — это обновит правила.

Шаг 7: Расширенные настройки и улучшения

  • Кастомные поля — можно добавить дополнительные поля для типа записи, например, с помощью плагина ACF.
  • Роли и доступ — настройте, кто может видеть и управлять кастомными записями и таксономиями.

Создание кастомных типов записей и таксономий в WordPress открывает широкие возможности для создания уникального контента и помогает лучше организовать его структуру на сайте!

Написать комментарий

Вы можете оставить комментарий автору статьи Обязательные поля помечены *