Поддержка Проблемы и решения Иерархический url для таксономии и записей

  • Добрый день, окончательно запутался с параметром ‘rewrite’, есть таксономия «категория» и свой тип записей «товар», хочу получить url вида /категория/подкатегория/подподкатегория для термов и /категория/подкатегория/подподкатегория/товар для своего типа записей.

    на данный момент имеется рабочий вариант:

    
    register_taxonomy( 'catalog-category', array( 'catalog' ), array(
            'labels'            => array(
                ...
            ),
            'description'       => 'Категории позиций каталога',
            'public'            => true,
            'show_in_rest' => true,
            'hierarchical'      => true,
            'rewrite'           => array(
                'slug'         => 'catalog',
                'hierarchical' => false,
                'with_front'   => false,
                'feed'         => false
            ),
            'show_admin_column' => true,
        ) );
    
        register_post_type( 'catalog', array(
            'labels'          => array(
               ...
            ),
            'description'     => 'Каталог товаров/позиций',
            'public'          => true,
            'show_in_menu'    => true,
            'show_in_rest' => true,
            'capability_type' => 'post',
            'map_meta_cap'    => true,
            'hierarchical'    => false,
            'rewrite'         => array(
                'slug'       => 'catalog/%catalog-category%',
                'with_front' => false,
                'pages'      => false,
                'feeds'      => false,
                'feed'       => false
            ),
            'has_archive'     => 'catalog',
            'query_var'       => true,
            'supports'        => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', ),
            'taxonomies'      => array( 'catalog-category' ),
            'menu_icon'       => 'dashicons-book'
        ) );
    

    работает, но адреса /catalog/<подподкатегория> для терма и /catalog/<подподкатегория>/<товар> для записи соответственно.

    Если в rewrite у таксаномии прописываю 'slug' => '/' и у записи так же меняю 'slug' => '/%catalog-category%' префикс ‘catalog’ естественным образом пропадает, но при включении в rewrite у таксаномии 'hierarchical' => true, ссылки на термы становятся /<категория>/<подкатегория>/<подподкатегория>, но при обращении получаю 404 ошибку.

    Если в rewrite у таксаномии оставить 'slug' => '/catalog' и только включить 'hierarchical' => true, то адреса у термов становятся /catalog/<категория>/<подкатегория>/<подподкатегория> и работают, но ссылки на записи остаются /catalog/<подподкатегория>/<товар> и выдают 404 ошибку, попытка обратиться напрямую по адресу /catalog/<категория>/<подкатегория>/<подподкатегория>/<товар> так же выдает 404.

    Подскажите, как все же настроить отображение термов(категорий) по иерархическим адресам, желательно без префикса, и к ним же привязать отображение записей(товаров). Казалось бы стандарное формирование url, но никак не получается осилить, как его реализовать на wp.

  • Тема «Иерархический url для таксономии и записей» закрыта для новых ответов.