Поддержка Проблемы и решения Удалить префикс product_brand из url

  • Добрый день. Подскажите как можно удалить префикс product_brand из url
    сейчас url имеет такой вид:
    site.com/product_brand/samsung
    а надо:
    site.com/samsung
    Как изменить префикс на другой я в курсе. Надо именно убрать его из url.
    Спасибо.

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Есть два варианта. Плагином Yoast или же в постоянных ссылках в админке. Смотря какой вариант Вам подойтет. Но иногда не срабатывает не один из вариантов. Возможно другой какой то подойдет.

    Постоянными ссылками в админке убрать полностью нельзя, можно только назначить другое имя вместо стандартного.

    Должен вроде как таким образом убираться, но не срабатывает(

    add_filter( 'register_taxonomy_args', function( $args, $taxonomy ){
      if( 'pwb-brand' === $taxonomy && is_array( $args ) ){
        $args['rewrite']['slug']       = '.';
        $args['rewrite']['with_front'] = false;
      }
      return $args;
    }, 99, 2 );
    • Ответ изменён 3 года, 3 месяца назад пользователем newjey.

    if( 'pwb-brand' === $taxonomy && is_array( $args ) ){

    Ну во-первых вы взяли костыль, написанный к другому плагину.
    В вашем случае таксономия имеет слаг product_brand
    А во-вторых, вы все равно получите 404.

    Я со слагом product_brand пробовал, 404 выдает. Можно как-то решить этот вопрос, не прибегая к помощи плагинов?

    у меня тоже такая проблема, я решила вот так
    Можно попробовать при создании custom post type указать
    slug = /:

    'rewrite' => [
      'slug' => '/',
      'with_front' => false
    ]

    Может поможет Вам

    @vitaminnnka спасибо за совет, а можно подробнее что и где надо сделать? Спасибо.

    Я не знаю как у Вас реализован custom post type, если через function.php, там нужно искать создание и добавлять

    Смотрите, прописал:

    add_filter( 'register_taxonomy_args', function( $args, $taxonomy ){
      if( 'product_brand' === $taxonomy && is_array( $args ) ){
        $args['rewrite']['slug']       = '/';
        $args['rewrite']['with_front'] = false;
      }
      return $args;
    }, 99, 2 );

    при этом в настройках постоянных ссылок прописал:
    brands
    Теперь страница каждого бренда работает как надо без префикса, а вот страница со всеми брендами выдает 404(

    Страница списка брендов выведена кстати шорт кодом. Почему так происходит? Как-то можно это сделать?

    Модератор Yuri

    (@yube)

    Страница списка брендов выведена кстати шорт кодом. Почему так происходит?

    Наверно потому, что у Вордпресса нет штатного механизма вывода на отдельный URL списка термов таксономии.

    @yube а как можно по другому обойти это?

    Модератор Yuri

    (@yube)

    Что, шорткод? Сделать индивидуальный шаблон страницы с кодом вывода термов таксономии. Не думаю, что код будет сильно отличаться от кода обработчика шорткода.

    Не надо пингать ник без особой нужды.

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