Поддержка Проблемы и решения Как сделать term и каталог по одному урлу?

  • Здравствуйте, возникла проблема с вп. Есть сайт с товарами (не woocomerce), у них есть категории, и они должны быть (и доступны) по урлу mysite.ru/producia. Там выводится список категорий товаров. Переходя на категорию товаров, которая доступна по mysite.ru/producia/name_cat выводятся все товары из данной категории. Переходя на товар, он должен иметь урл mysite.ru/producia/name_of_product. Так вот проблема в следующем, сейчас post_type для продукции прописан так:

    
    register_post_type('products', array(
    		'labels' => array(
    			'name'               => __('Продукция', 'carnon'),
    		),
    		'public' => true,
    		'capability_type' => 'page',
    		'hierarchical' => true,
    		'menu_icon' => 'dashicons-book',
    		'menu_position' => 5,
    		'rewrite' => array( 'slug' => 'producia', 'with_front' => false ),
    		'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
    		'show_in_rest' => true,
    	));
    </code>
    

    А для таксономии «категории» так:

    
    register_taxonomy( 'category', [ 'products' ], [ 
    		'label'                 => 'Категории', 
    		'labels'                => [
    			'name'              => 'Категории',
    		],
    		'description'           => '', 
    		'public'                => true,
    		'hierarchical'          => true,
    		'capabilities'          => array(),
    		'meta_box_cb'           => null, 
    		'show_admin_column'     => false, 
    		'show_in_rest'          => true,
    		'rest_base'             => null,
    'rewrite' => array( 'slug' => 'producia', 'with_front' => false ),
    	] );
    

    Проблема в следующем: если оставить все так, то то список категорий и список товаров категории доступны по нужному урлу, но товар отдает 404 (страницу постоянный ссылки обновлял). Если из объявлении таксономии убрать «rewrite», то список категорий и товар доступны по нужному урлу, но тогда страница со списком товаров из категории доступна по адресу mysite.ru/category/name_cat (оно в общем то логично). Вопрос, можно ли как то реализовать мою задумку?

    • Тема изменена 3 года, 8 месяцев назад пользователем caof19.
Просмотр 1 ответа (всего 1)
  • Можно, но так как префикс одинаковый у таксономии и товара, то для этого нужно будет проверять слаг name_of_product, товар это или категория. Тоесть нужно будет делать запросы в базу для проверки и по условиям изменять запрос.

    Для изменения запроса в помощь фильтр https://wp-kama.ru/hook/request

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