VNaumenko
@VNaumenko
Веб-разработчик

Как изменить URL в WordPress?

Зарегистрировал новый тип записей "collections".
И к нему сделал таксономия "collections-brands".

Теперь ссылка на все коллекции выглядит так: /collections/
Теперь ссылка на все коллекции бренда выглядит так: /collections-brands/БРЕНД/
Теперь ссылка на конкретную коллекцию выглядит так: /collections/КОНКРЕТНАЯ_КОЛЛЕКЦИЯ/

А надо:
Все: /collections/
Бренд: /БРЕНД/collections/
Конкретная: /БРЕНД/collections/КОНКРЕТНАЯ_КОЛЛЕКЦИЯ/

Как это сделать?

Я уже все перечитал, нигде нет моего случая, пробовал так:
add_action('init', function(){
    global $wp_rewrite;

    // добавим тег перезаписи, чтобы add_permastruct() его поняла
    // он потом будет заменен на часть регулярки указанной во втором параметре
    $wp_rewrite->add_rewrite_tag( '%collections%', '([^/]+)', "post_type=collections&name=" );
    $wp_rewrite->add_rewrite_tag( '%collections-brands%', '([^/]+)', "post_type=collections-brands&name=" );

    $permastruct = '%collections-brands%/collections/%collections%'; // наша структура ЧПУ
    // добавляем структуру ЧПУ
    $wp_rewrite->add_permastruct( 'collections', $permastruct, array(
        'with_front'  => true,
        'paged'       => true,
        'feed'        => false,
        'forcomments' => false,
        'walk_dirs'   => false,
        'endpoints'   => false,
    ) );
}, 1);
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
VNaumenko
@VNaumenko Автор вопроса
Веб-разработчик
Сделал так:
add_action('init', function(){
    global $wp_rewrite;
    $permastruct = '%collections-brands%/collections'; // наша структура ЧПУ
    // добавляем структуру ЧПУ
    $wp_rewrite->add_permastruct( 'collections-brands', $permastruct, array(
        'with_front'  => true,
        'paged'       => true,
        'feed'        => false,
        'forcomments' => false,
        'walk_dirs'   => false,
        'endpoints'   => false,
    ) );

}, 1);


Теперь работает /БРЕНД/collections/ НО 404 ошибка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы