Поддержка Проблемы и решения Вывести произвольные записи в категориях

  • Здравствуйте!
    Пытаюсь решить задачу по выводу произвольных типов записей:
    Добиться работы разделов вложенных таксономий или рубрик произвольных типов записей.

    В данный момент удалось вывести записи из таксономии с постраничной навигацией,
    но не в назначеном мною шаблоне, а на странице index.php.

    Ссылки на страницы с произвольными типами записей работают и страницы открываются.
    Не могу разобраться, почему записи из таксономии не выводитятся в шаблоне taxonomy-proizvoditeli.php,
    пробовал создать шаблоны: category-proizvoditeli.php, arhive-proizvoditeli.php, но в них тоже не выводится,
    выводит только в index.php.

    Еще проблема в том, что при клике на раздел и подраздел таксономии получаю 404 ошибку.
    Пемалинки обновлял, связи типов записей и таксономий сделал.

    Помогите пожалуйста разобраться.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • 
    add_action( 'init', 'type_proizvoditeli' );
    
    function type_proizvoditeli() {
    
        $labels = array (
            "name" => "Производители", // основное название для типа записи, обычно во множественном числе.
            "singular_name" => "Производители", // название для одной записи этого типа.
            "menu_name" => "Производители",  // название меню. По умолчанию равен name.
            "all_items" => "Все производители", // архивы записей. По умолчанию равен all_items
            "add_new" => "Добавить нового производителя", // текст для добавления новой записи, как "добавить новый" у постов в админ-панели.
            "add_new_item" =>  "Добавить производителя",// текст для добавления нового поста. Аналогична тексту "Добавить новый пост" у стандартных записей
            "edit_item" => "Редактировать производителя", // текст для редактирования типа записи. По умолчанию: редактировать пост/редактировать страницу.
            "new_item" => "Новый Производитель",  // текст новой записи. По умолчанию: "Новый пост"
            "view_item" => "Смотреть эту страницу на сайте", // текст для просмотра записи этого типа. По умолчанию: "Посмотреть пост"/"Посмотреть страницу".
            "view_items" => "Смотреть производителей", // название в тулбаре, для страницы архива типа записей. По умолчанию: «View Posts» / «View Pages». С WP 4.7.
            "search_items" =>  "Поиск производителей", // текст для поиска по этим типам записи. По умолчанию "Найти пост"/"найти страницу".
            "not_found" => "Производители не найдены",  // текст, если в результате поиска ничего не было найдено.
            "not_found_in_trash" => "Производителей нет",  // текст, если не было найдено в корзине. По умолчанию "Постов не было найдено в корзине"/"Страниц  не было найдено в корзине".
            // "parent" => "Parent Производитель",),
            "featured_image" =>  "Логотип",
            "set_featured_image" => "Изображения",
            "remove_featured_image" => "Удалить логотип",
            "use_featured_image" => "Использовать изображение",
            "archives" => "izgotoviteli", // Архивы записей. По умолчанию равен all_items
            "insert_into_item" => "Вставить в содержимое", // Вставить в запись
            "uploaded_to_this_item" => "Загрузить производителя",
            "filter_items_list" => "Фильтр производителей",  // Фильтровать список записей
            "items_list_navigation" => "Производители list navigation",  // Навигация по записям
            "items_list" =>  "Производители list", // Список записей
            // "attributes" => __( "Производители attributes", "custom-post-type-ui" ),
            "name_admin_bar" => "Производителя",  // Название в админ баре (тулбаре). По умолчанию равен singular_name.
            "item_published" =>"Производитель опубликован",// Текст заметки в редакторе записи при публикации записи. С WP 5.0.
            //  "item_published_privately" => __( "Производитель published privately.", "custom-post-type-ui" ), // Текст заметки в редакторе записи при публикации private записи. С WP 5.0.
            "item_reverted_to_draft" => "Производитель reverted to draft.", // Текст заметки в редакторе записи при возврате записи в draft. С WP 5.0.
            "item_scheduled" =>  "Производитель scheduled",
            "item_updated" => "Производитель обновлен",  // Текст заметки в редакторе записи при обновлении записи. С WP 5.0.
            "parent_item_colon" => "Parent Производитель",  // Текст для родительского элемента таксономии, тоже что и parent_item но с двоеточием в конце. По умолчанию нет или __( 'Parent Category:' )
        );
    
        $args = array(
            "label" => "Производители", // Имя типа записи помеченное для перевода на другой язык
            "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" => true, // включает поддержку страниц архивов для этого типа записей
            "taxonomies" => [ "izgotoviteli" ], // Массив зарегистрированных таксономий, которые будут связаны с этим типом записей, например: category или post_tag.
           // "supports" => ['title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields'], типы метаблоков для страницы публикации и редактирования материала
        );
    
        register_post_type( "proizvoditeli", $args );
    }
    
    
    • Ответ изменён 3 года, 10 месяцев назад пользователем mishaermolaev.
    
    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' );
    

    Ответ нашел здесь. Дай Бог здоровья доброму человеку написавшему эту статью!
    https://tokmakov.msk.ru/blog/item/399

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Вывести произвольные записи в категориях» закрыта для новых ответов.