iborisbelov
@iborisbelov
Веб-дизайнер, UX\UI

Как сделать постоянные ссылки Woocommerce для категории и товаров одинаковые?

Здравствуйте.

Клиент хочет чтобы Product category base имел категорию Products
и так же, чтобы Product Permalinks тоже начинался на Products.

1A553bOuKBKJLA.png

Проблема в том, что когда делаю Product category base -> Products, и Product Permalinks -> Products то появляется 404 ошибка, а если сделать например Product Permalinks -> Product то все ок.

Но нужно именно Product category base -> Products и Product Permalinks -> Products, как так сделать?
  • Вопрос задан
  • 3167 просмотров
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
WordPress использует base в урл чтобы определять, что это за тип контента и какой запрос выполнять. Поэтому один и тот же base для разных типов - не вариант. Дело в том, что ваш красивый урл для него выглядит вот так:
/products/sample-product/ - урл для человека
/products/([^/]+)(?:/([0-9]+))?/?$ - правило, по которому WP его парсит
index.php?product=sample-product&post_type=product&name=sample-product - вот во что он превращается для ядра

Как видите, в результирующем "машинном" урл запрашивается post_type, там нет ничего связанного с категориями продуктов, соответственно по ним ничего искаться и не будет, отсюда 404.

Также, важно понимать, что rewrite rules в WordPress идут массивом, одно за другим, и он их в таком порядке проверяет. Первое, которое подошло сработает, и дальнейшая проверка прекращается. Поэтому, если у вас 2 разных правила на 1 урл base, срабатывать будет то, которое в массиве правил стоит первым. До второго очередь просто не дойдет.

Вообще, по логике, структура url должна быть:

/products/ - все продукты
/products/category/{category-name} - категория продуктов
/product/{product-name} - один продукт

А хотелки клиента надо иногда контролировать.
Ответ написан
Ваш ответ на вопрос

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

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