Формирование ЧПУ 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
И не забудь про обработку пагинации...