своя категория в вордпресс

Создание своей таксономии (категории) в WordPress

Для того чтобы создать новую таксономию к примеру Авторы нам нужно отредактировать файл functions.php своей темы.

Добавляем следующий php код:

// Регистрация новой таксономии:
add_action( 'init', 'create_taxname', 0 );
function create_taxname () {
$args = array(
    // Название таксономии
    'label' => _x( 'Авторы', 'taxonomy general name' ),
   
    // Значения таксономии в админ-панели:
    'labels' => array(
    // Общее название таксономии (множественное число).
    // По умолчанию: 'МеткИ' или 'РубрикИ'
    'name' => _x( 'Имена', 'taxonomy general name' ),
    // Название таксономии (единственное число).
    // По умолчанию: 'МеткА' или 'РубрикА'
    'singular_name' => _x( 'Авторы', 'taxonomy singular name' ),
    // Название таксономии в пункте меню.
    'menu_name' => __( 'Имена' ),
    // По умолчанию: 'Все метки' или 'Все рубрики'
    'all_items' => __( 'Все Имена' ),
    // Текст изменения таксономии на странице редактирования.
    // По умолчанию: 'Изменить метку' или 'Изменить рубрику'
    'edit_item' => __( 'Изменить имя' ),
    // Текст в админ-панели на странице редактирования данной таксономии.
    // По умолчанию: 'Просмотреть метку' или 'Просмотреть рубрику'
    'view_item' => __( 'Просмотреть Имена' ),
    // Текст обновления таксономии во вкладке свойства.
    // По умолчанию: 'Обновить метку' или 'Обновить рубрику'
    'update_item' => __( 'Обновить имя' ),
    // Текст добавления новой таксономии при ее создании.
    // По умолчанию: 'Добавить новую метку' или 'Добавить новую рубрику'
    'add_new_item' => __( 'Добавить новое имя' ),
    // Название таксономии при ее создании и редактировании.
    // По умолчанию: 'Название'
    'new_item_name' => __( 'Название' ),
    // Текст родительской таксономии при создании и редактировании.
    // Для древовидных таксономий.
    // По умолчанию: Родительская.
    'parent_item' => __( 'Родительская' ),
    // То же, что и parent_item, но с добавлением двоеточия.
    // По умолчанию: 'Родительская:'
    'parent_item_colon' => __( 'Родительская:' ),
    // Текст в кнопке поиска на странице всех таксономий.
    // По умолчанию: 'Поиск меток' или 'Поиск рубрик'
    'search_items' => __( 'Поиск имени' ),
   
    // ЧЕТЫРЕ НИЖНИХ параметра НЕ используется для древовидных таксономий:
    // Надпись популярных таксономий (на странице всех таксономий).
    // По умолчанию: Популярные метки или null.
    'popular_items' => null,
    // Надпись разделения таксономий запятыми в метабоксе.
    // По умолчанию: Метки разделяются запятыми или null.
    'separate_items_with_commas' => null,
    // Надпись добавления или удаления таксономий в метабоксе когда JavaScript отключен.
    // По умолчанию: Добавить или null.
    'add_or_remove_items' => null,
    // Текст выбора из часто используемых таксономий в метабоксе.
    // По умолчанию: Выбрать из часто используемых или null.
    'choose_from_most_used' => null,
   
    // Текст в случае, если запрашиваемая таксономия не найдена.
    // По умолчанию: 'Меток не найдено. или 'Рубрик не найдено.
    'not_found' => __( 'Имя не найдено.' ),
    ),
    // Если true, то таксономия становится доступной для использования.
    'public' => true,
    // Доступность таксономии для управления в админ-панели, но не показывает ее в меню.
    // По умолчанию: 'public'.
    'show_ui' => true,
    // Показывать таксономию в админ-меню.
    // Значение аргумента 'show_ui' должно быть true.
    // По умолчанию: значение аргумента 'show_ui'.
    'show_in_menu' => true,
    // Добавляет или исключает таксономию в навигации сайта "Внешний вид -> Меню"
    // По умолчанию: 'public'.
    'show_in_nav_menus' => true,
    // Позволяет виджет 'Облако меток' использовать в таксономии.
    // По умолчанию: 'show_ui'.
    'show_tagcloud' => true,
    // Показ таксономии в меню быстрого доступа.
    // По умолчанию: 'show_ui'.
    'show_in_quick_edit' => true,
    // Обеспечивает показ метабокса с таксономией в записи. По умолчанию: null.
    'meta_box_cb' => null,
    // Позволяет автоматическое создание столбцов таксономии в таблице ассоциативных типов постов.
    // По умолчанию: false.
    'show_admin_column' => false,
    // Подключает описание таксономии в таблице со всеми таксономиями. По умолчанию: ''
    'description' => '',
    // Делает таксономию древовидной как рубрики или недревовидной как метки. По умолчанию: false.
    'hierarchical' => true,
    // Название функции, вызываемая после обновления ассоциативных типов объектов записи (поста)
    // Действует во многом как хук.
    // По умолчанию: ''.
    'update_count_callback' => '',
    // Значение запроса. По умолчанию: true.
    'query_var' => true,
   
    // Перезапись URL. По умолчанию: true.
    'rewrite' => array(
    // Текст в ЧПУ. По умолчанию: название таксономии.
    'slug' => 'person',
    // Позволяет ссылку добавить к базовому URL.
    'with_front' => false,
    // Использовать (true) или не использовать (false) древовидную структуру ссылок.
    // По умолчанию: false.
    'hierarchical' => true,
    // Перезаписывает конечное значение таксономии. По умолчанию: EP_NONE.
    'ep_mask' => EP_NONE,
),
   
/*
    // Массив полномочий зарегестрированных пользователей:
    'capabilities' => array(
    'manage_terms' => 'manage_resource',
    'edit_terms'   => 'manage_categories',
    'delete_terms' => 'manage_categories',
    'assign_terms' => 'edit_posts',
),
*/

    // Должна ли таксономия запоминать порядок, в котором посты были созданы.
    // По умолчанию: null.
    'sort' => null,
    // Является ли таксономия собственной или встроенной.
    // Рекомендация: не использовать этот аргумент при регистрации собственной таксономии.
    // По умолчанию: false.
    '_builtin' => false,
);
    // Названия типов записей к которым будет привязана таксономия
    register_taxonomy( 'person', array('post'), $args );
}

После редактирования файла functions.php появилась новая категория с авторами книг, либо списком актеров кому для чего нужна новая таксономия ( категория) WordPress

Далее создадим шаблон для своей категории

Создаем файл taxonomy-person.php и переносим все содержимое archive.php в него.

В верху меняем php код на этот

// категория таксономия
elseif (is_tax(person) ) {
    get_template_part( '/taxonomy-person' );
}

вот примеры других кодов под разные таксономии

<?php
// Если это конкретные категории
if (is_category(array('102','103','104')) ) {
    get_template_part( '/archives/raitings' );
}

// категория таксономии
elseif (is_tax(person) ) {
    get_template_part( '/taxonomy-person' );
}

// категория поиск
elseif (is_search() ) {
    get_template_part( '/search' );
}
// категория теги и всё другое
else {
    get_template_part( '/archives/tag' );
}
?>

У меня у самого как то была похожая проблема. вместо вставки кода тупо переименовывал архив и не понимал почему не выходит=) так что дерзайте надеюсь кому-нибудь это поможет

+7
Поделитесь информацией с другими:

One thought on “Создание своей таксономии (категории) в WordPress

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *