Как вывести произвольные типы записей с категориями в шаблоне?
Здравствуйте!
Пытаюсь решить 2 задачи по выводу произвольных типов записей:
1) Вывести таксономию произвольных типов записей в назначенном шаблоне.
2) Добиться работы разделов вложенных таксономий или рубрик произвольных типов записей.
В данный момент удалось вывести записи из таксономии с постраничной навигацией,
но не в назначеном мною шаблоне, а на странице index.php.
Ссылки на страницы с произвольными типами записей работают и страницы открываются.
Не могу разобраться, почему записи из таксономии не выводитятся в шаблоне taxonomy-proizvoditeli.php,
пробовал создать шаблоны: category-proizvoditeli.php, arhive-proizvoditeli.php, но в них тоже не выводится,
выводит только в index.php.
Вторая проблема в том, что при клике на раздел и подраздел таксономии получаю 404 ошибку.
Пемалинки обновлял, связи типов записей и таксономий сделал.
/**
* Post Type: Производители.
*/
add_action( 'init', 'type_proizvoditeli' );
function type_proizvoditeli() {
$labels = [
"name" => __( "Производители", "custom-post-type-ui" ), // основное название для типа записи, обычно во множественном числе.
"singular_name" => __( "Производители", "custom-post-type-ui" ), // название для одной записи этого типа.
"menu_name" => __( "Производители", "custom-post-type-ui" ), // название меню. По умолчанию равен name.
"all_items" => __( "Все производители", "custom-post-type-ui" ), // архивы записей. По умолчанию равен all_items
"add_new" => __( "Добавить нового производителя", "custom-post-type-ui" ), // текст для добавления новой записи, как "добавить новый" у постов в админ-панели.
"add_new_item" => __( "Добавить производителя", "custom-post-type-ui" ), // текст для добавления нового поста. Аналогична тексту "Добавить новый пост" у стандартных записей
"edit_item" => __( "Редактировать производителя", "custom-post-type-ui" ), // текст для редактирования типа записи. По умолчанию: редактировать пост/редактировать страницу.
"new_item" => __( "Новый Производитель", "custom-post-type-ui" ), // текст новой записи. По умолчанию: "Новый пост"
"view_item" => __( "Смотреть эту страницу на сайте", "custom-post-type-ui" ), // текст для просмотра записи этого типа. По умолчанию: "Посмотреть пост"/"Посмотреть страницу".
"view_items" => __( "Смотреть производителей", "custom-post-type-ui" ), // название в тулбаре, для страницы архива типа записей. По умолчанию: «View Posts» / «View Pages». С WP 4.7.
"search_items" => __( "Поиск производителей", "custom-post-type-ui" ), // текст для поиска по этим типам записи. По умолчанию "Найти пост"/"найти страницу".
"not_found" => __( "Производители не найдены", "custom-post-type-ui" ), // текст, если в результате поиска ничего не было найдено.
"not_found_in_trash" => __( "Производителей нет", "custom-post-type-ui" ), // текст, если не было найдено в корзине. По умолчанию "Постов не было найдено в корзине"/"Страниц не было найдено в корзине".
// "parent" => __( "Parent Производитель", "custom-post-type-ui" ),
"featured_image" => __( "Логотип", "custom-post-type-ui" ),
"set_featured_image" => __( "Изображения", "custom-post-type-ui" ),
"remove_featured_image" => __( "Удалить логотип", "custom-post-type-ui" ),
"use_featured_image" => __( "Использовать изображение", "custom-post-type-ui" ),
"archives" => __( "izgotoviteli", "custom-post-type-ui" ), // Архивы записей. По умолчанию равен all_items
"insert_into_item" => __( "Вставить в содержимое", "custom-post-type-ui" ), // Вставить в запись
"uploaded_to_this_item" => __( "Загрузить производителя", "custom-post-type-ui" ),
"filter_items_list" => __( "Фильтр производителей", "custom-post-type-ui" ), // Фильтровать список записей
"items_list_navigation" => __( "Производители list navigation", "custom-post-type-ui" ), // Навигация по записям
"items_list" => __( "Производители list", "custom-post-type-ui" ), // Список записей
// "attributes" => __( "Производители attributes", "custom-post-type-ui" ),
"name_admin_bar" => __( "Производителя", "custom-post-type-ui" ), // Название в админ баре (тулбаре). По умолчанию равен singular_name.
"item_published" => __( "Производитель опубликован", "custom-post-type-ui" ), // Текст заметки в редакторе записи при публикации записи. С WP 5.0.
// "item_published_privately" => __( "Производитель published privately.", "custom-post-type-ui" ), // Текст заметки в редакторе записи при публикации private записи. С WP 5.0.
"item_reverted_to_draft" => __( "Производитель reverted to draft.", "custom-post-type-ui" ), // Текст заметки в редакторе записи при возврате записи в draft. С WP 5.0.
"item_scheduled" => __( "Производитель scheduled", "custom-post-type-ui" ),
"item_updated" => __( "Производитель обновлен", "custom-post-type-ui" ), // Текст заметки в редакторе записи при обновлении записи. С WP 5.0.
"parent_item_colon" => __( "Parent Производитель", "custom-post-type-ui" ), // Текст для родительского элемента таксономии, тоже что и parent_item но с двоеточием в конце. По умолчанию нет или __( 'Parent Category:' )
];
$args = [
"label" => __( "Производители", "custom-post-type-ui" ), // Имя типа записи помеченное для перевода на другой язык
"labels" => $labels, // Массив содержащий в себе названия ярлыков для типа записи.
"description" => "", // Короткое описание этого типа записи для REST API.
"public" => true, // пределяет является ли тип записи публичным или нет.
"menu_position" => 4, // позиция, расположение меню
"menu_icon" => 'dashicons-hammer', // иконка для меню
"publicly_queryable" => true, // определяет будут ли работать запросы этого типа записей в шаблоне. не будут доступны записи не будут доступны на сайте через url
"show_ui" => true, // определяет показывать пользовательский интерфейс (UI) для этого типа записей.
"show_in_rest" => false, // Нужно ли включать тип записи в REST API. true - добавит тип записи в маршрут wp/v2
"rest_base" => "", // Ярлык в REST API. По умолчанию, название типа записи.
"rest_controller_class" => "WP_REST_Posts_Controller", // Название класса контроллера в REST API.
"show_in_menu" => true, // показывать тип записи в административном меню
"show_in_nav_menus" => false, // возможность выбирать этот тип записи в меню навигации
"delete_with_user" => false, // Удалять записи при удалении юзера или нет
"exclude_from_search" => false, // true - этот тип записей не будет учитываться при поиске по сайту
"capability_type" => "post", // используется для списка прав котрые будут записаны в параметр capabilities.
"map_meta_cap" => true, // преобразует неоднозначные права
"hierarchical" => true, // будут ли записи древовидными (true) как постоянные страницы или будут связаны таксономией (false).
"rewrite" => [ "slug" => "izgotoviteli", "with_front" => true ], // добавляет элемент slug в адрес
"query_var" => true, // устанавливает название параметра запроса для создаваемого типа записи
"has_archive" => 'izgotoviteli', // включает поддержку страниц архивов для этого типа записей
"taxonomies" => [ "izgotoviteli" ], // Массив зарегистрированных таксономий, которые будут связаны с этим типом записей, например: category или post_tag.
// "supports" => ['title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields'], типы метаблоков для страницы публикации и редактирования материала
];
register_post_type( "proizvoditeli", $args );
}
/**
* Taxonomy: Раздел.
*/
function tax_izgotoviteli() {
register_taxonomy( 'izgotoviteli',
array( 'proizvoditeli'), // для какого типа записей назначается данная таксономия
array (
"hierarchical" => true, // true - по типу рубрик, false - по типу меток,по умолчанию - false
'labels' => array (
"name" => "Разделы производителей", // Имя таксономии, обычно во множественном числе. По умолчанию _x( 'Post Tags', 'taxonomy general name' ) или _x( 'Categories', 'taxonomy general name' );
"singular_name" => "Добавить раздел", // Название для одного элемента этой таксономии. По умолчанию _x( 'Post Tag', 'taxonomy singular name' ) или _x( 'Category', 'taxonomy singular name' );
"menu_name" => "Разделы", // Текст для названия меню в левом тулбаре админки. Эта строка обозначает название для пунктов меню. По умолчанию значение параметра name;
"all_items" => "Все производители", // Текст для всех элементов. __( 'All Tags' ) или __( 'All Categories' );
"edit_item" => "Изменить раздел", // Текст для редактирования элемента. По умолчанию __( 'Edit Tag' ) или __( 'Edit Category' );
"view_item" => "Смотреть раздел", // Текст для просмотра термина таксономии. По умолчанию: "Посмотреть метку", "Посмотреть категорию". Используется например, в админ баре (тулбаре).
"update_item" => "Изменить", // Текст для обновления элемента. По умолчанию __( 'Update Tag' ) или __( 'Update Category' );
"add_new_item" => "Добавить раздел", // Текст для добавления нового элемента таксономии. По умолчанию __( 'Add New Tag' ) или __( 'Add New Category' );
"new_item_name" => "New Добавить раздел name", // Текст для создания нового элемента таксономии. По умолчанию __( 'New Tag Name' ) или __( 'New Category Name' );
"parent_item" => "Родительский раздел", // Текст для родительского элемента таксономии. Этот аргумент используется для древовидных таксономий. По умолчанию null или __( 'Parent Category' );
"parent_item_colon" => "Добавить раздел:", // Текст для родительского элемента таксономии, тоже что и parent_item но с двоеточием в конце. По умолчанию нет или __( 'Parent Category:' );
"search_items" => "Поиск производителя", // Текст для поиска элемента таксономии. По умолчанию __( 'Search Tags' ) или __( 'Search Categories' );
"popular_items" => "Popular Производители", // Текст описывающий, что элементы нужно разделять запятыми (для блога в админке). Не работает для древовидного типа. По умолчанию __( 'Separate tags with commas' ) или null;
"separate_items_with_commas" => "Separate Производители with commas", // Текст для "удаления или добавления элемента", который используется в блоке админке, при отключенном javascript. Не действует для древовидных таксономий. По умолчанию __( 'Add or remove tags' ) или null;
"add_or_remove_items" =>"Add or remove Производители", // Текст для добавления или удаления терминов. Не используется для древовидных типов. По умолчанию: "Добавить или удалить метки". или null.
"choose_from_most_used" => "Choose from the most used Производители", // Текст "Выбрать из часто используемых". Не используется для древовидных типов.
"not_found" => "No Производители found", // Текст "не найдено", который отображается, если при клике на часто используемые ни один термин не был найден.
"no_terms" => "No Производители", // Используется в таблицах записей и медиафайлов. По умолчанию 'No tags'/'No categories'.
"items_list_navigation" => "Производители list navigation", // Текст для таблицы пагинации, для скрытого заголовка.
"items_list" => "Производители list", // Текст для скрытого заголовка таблицы.
),
"label" => "Раздел",
"public" => true, // каждый может использовать таксономию, либо только администраторы, по умолчанию - true
"publicly_queryable" => true,
"show_ui" => true, // добавить интерфейс создания и редактирования
"show_in_menu" => true,
"show_in_nav_menus" => true, // добавить на страницу создания меню
"query_var" => true, // разрешено ли использование query_var, также можно указать строку, которая будет использоваться в качестве него, по умолчанию - имя таксономии
"rewrite" => array ( // настройки URL пермалинков
'slug' => 'izgotoviteli', // ярлык
'with_front' => true, // разрешить вложенность
),
"show_admin_column" => true, // авто-создание колонки таксы в таблице ассоциированного типа записи. (с версии 3.5)
"show_in_rest" => false,
"rest_base" => "izgotoviteli",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
"hierarchical" => true,
)
);
}
add_action( 'init', 'tax_izgotoviteli' );