Формирование ЧПУ woocommerce
Формирую ЧПУ для товаров и категорий woocommerce со струкртурой:
domain.com/shop/%product_cat% для категорий и
domain.com/shop/%product_cat%/%product% для продуктов.
Но столкнулся с проблемой что для товаров и категорий не может быть общей базы т.е. shop или что другое.
В нстройках ссылок для wooceoomerce

И подцепил хук для переопределения url:
<?php
class CFunction
{
public function __construct ()
{
add_action('init', [$this, 'rewrite_rule_cpost']);
}
public function rewrite_rule_cpost()
{
$post_type = 'product';
add_rewrite_tag( "%product%", '([^/]+)', "post_type=$post_type&name=" );
$permastruct = "shop/%product_cat%/%product%"; // наша структура ЧПУ
$args = array(
'with_front' => true,
'paged' => true,
'ep_mask' => EP_NONE,
'feed' => false,
'forcomments' => false,
'walk_dirs' => false,
'endpoints' => false,
);
add_permastruct( $post_type, $permastruct, $args );
}
}
new CFunction();
Этот вариант более рабочий, пробовал и через .htaccess
RedirectMatch 301 (\/product-category\/)(.+) http://domain.com/shop/$2
В итоге товары 404 отдают. Если сделать изменить базу для категорий или товаров, то всё работает. Как мне их подружить?
Спасибо! Буду разбираться.
Тема чпу в вордпресс скользкая...
Вот тебе слайды, может помогут разобратся: https://es.slideshare.net/MikeSchinkel/hardcore-url-routing-2014
А еще есть https://wp-kama.ru/function/add_rewrite_rule
И не забудь про обработку пагинации...