Поддержка Темы и шаблоны Подскажите правильное решение

  • Решено valery2016

    (@valery2016)


    Всем доброго времени суток!
    Изучаю ВП… Сейчас случилась «затыка»: не могу выбрать правильный путь 🙁

    Смысл вот какой.
    У меня в меню (кроме прочих) есть два пункта: один — записи блога, второй — вывод постов по Категориям (пять категорий товаров).
    Записи блога нескольких типов: изображение, стандартный пост и т.д. Всё выводится замечательно, в соответствии с прописанными шаблонами для каждого из них.

    Проблема (с моим пониманием) возникает на этапе «темизации» категорий товаров.
    Я добавил дополнительный тип записей (product), создал шаблон для вывода единичного поста (single-product) этого типа и архивную страницу для него же. В меню прописал ссылку вида mysite.ru/product
    Добавленные Посты нового типа выводятся. С этим, вроде, разобрался…

    Не могу понять (и найти), как «связать» новый CPT с существующими рубриками (категориями).
    Под «связать» я понимаю следующее: я могу выбрать желаемую категорию при добавлении поста типа Продукт (это я прописал), но вот разделить вывод на Продукты Категории 1, Продукты Категории 2 и т.д. не знаю как…
    Как только возникает Категория N, вордпресс пытается найти обычные Посты, игнорируя добавленный тип Записей…

    В общем, нужен совет…
    Спасибо!

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • но вот разделить вывод на Продукты Категории 1, Продукты Категории 2 и т.д. не знаю как…
    Как только возникает Категория N, вордпресс пытается найти обычные Посты, игнорируя добавленный тип Записей…

    Так Вы хотите связать или разделить?
    И как вы сделали кастомный тип — кодом или каким-то плагином? Каким?

    Автор valery2016

    (@valery2016)

    Спасибо за ответ!

    И извиняюсь за «семантику» 🙂

    Я хочу через меню получить доступ к странице, на которой выводятся, к примеру, Продукты Категории 1. Дальше — посмотреть любой из продуктов категории 1.

    Структура этого пункта меню такая:
    Товары
    |
    Продукты Категории 1
    |
    Продукты Категории 2
    |
    Продукты Категории 3

    Здесь, товары — родительская рубрика, а продукты категорий — дочерние подрубрики. Выбор нужных рубрик в кастомном типе присутствует.
    Но вот ВП при таком построении меню все категории (с номером) выводит через category/cat№ (в url).
    Я создал пункт меню (произвольная ссылка), добавил слаг кастомного типа. Мои кастомные Продукты теперь отображаются. Все. Но вот как их «отфильтровать» в соответствии с расставленными по под-категориями крыжикам?
    Не знаю, внятно ли объяснил?

    Кастомный тип писал руками.
    Я просто пытаюсь освоить ВП, поэтому… всё руками, без плагинов (ИМХО, лучший способ чему-то научиться). Всё в полном соответствии с документацией. Например:

    // Services Post type
        $labels = array(
            'name'               => 'Services',
            'singular_name'      => 'Service',
            'menu_name'          => 'Services',
            'name_admin_bar'     => 'Service',
            'add_new'            => 'Add New',
            'add_new_item'       => 'Add New Service',
            'new_item'           => 'New Service',
            'edit_item'          => 'Edit Service',
            'view_item'          => 'View Service',
            'all_items'          => 'All Services',
            'search_items'       => 'Search Services',
            'parent_item_colon'  => 'Parent Services:',
            'not_found'          => 'No services found.',
            'not_found_in_trash' => 'No services found in Trash.',
        );
        
        $args = array(
            'labels'             => $labels,
            'public'             => true,
            'publicly_queryable' => true,
            'show_ui'            => true,
            'show_in_menu'       => true,
            'menu_icon'          => 'dashicons-id-alt',
            'query_var'          => true,
            'rewrite'            => array( 'slug' => 'services' ),
            'capability_type'    => 'post',
            'has_archive'        => true,
            'hierarchical'       => false,
            'menu_position'      => 5,
            'supports'           => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
            'taxonomies'         => array( 'category', 'post_tag' )
        );
        register_post_type( 'services', $args );

    Не знаю, внятно ли объяснил?

    Не очень 😉 По вопросу «разделить или связать» я так и не понял. И причем тут меню тоже. Меню никак не влияет на выборку — это просто ссылки.
    Так как у Вас сейчас — продукты и записи связаны общими таксономиями:
    taxonomies' => array( 'category', 'post_tag' )
    Если же Вы хотите создавать категории (и метки?) для продуктов (только для них) — Вам нужно создать для них кастомные таксономии.

    В образовательных целях (да и для упрощения кодингка) рекомендую на тестовый сайт поставить https://wordpress.org/plugins/custom-post-type-ui/ Он позволяет мышей сделать что нужно, но при этом у него есть возможность получить php-код. Небольшое изменение названий функций — и его можно использовать в своём плагине/теме 😉

    • Ответ изменён 6 лет назад пользователем SeVlad.
    Автор valery2016

    (@valery2016)

    Спасибо за понимание!
    Не смотря на моё неумение объяснять, Вы подсказали мне решение:

    Если же Вы хотите создавать категории (и метки?) для продуктов (только для них) — Вам нужно создать для них кастомные таксономии.

    Спасибо!

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