BonBonSlick
@BonBonSlick
Vanilla Web Architect

WooCommerce если база категорий такая же как база товара, выдает ошибку 404?

Настройки постоянных ссылок:

База категорий: /my_mega_store
База продуктов (кастомная): /my_mega_store$prodact_cat%

При таком раскладе, на странице категории выдает ошибку 404 - страница не найдена.
Если изменить базу категорий хотя бы на 1 символ, все заработает.
Пробовал этот хуук, не рабоатет:
add_filter( 'rewrite_rules_array', function( $rules )
{
    $new_rules = array(
        'shop/([^/]*?)/page/([0-9]{1,})/?$' => 'index.php?product_cat=$matches[1]&paged=$matches[2]',
        'shop/([^/]*?)/?$' => 'index.php?product_cat=$matches[1]',
    );
    return $new_rules + $rules;
} );

Взято тут: тык, ему помогло, мне - нет. Видимо у него настройки другие, версия другая, или плагины другие стоят.
  • Вопрос задан
  • 1884 просмотра
Решения вопроса 1
@Zoten
Noob
function devvn_product_category_base_same_shop_base( $flash = false ){
    $terms = get_terms(array(
        'taxonomy' => 'product_cat',
        'post_type' => 'product',
        'hide_empty' => false,
    ));
    if ($terms && !is_wp_error($terms)) {
        $siteurl = esc_url(home_url('/'));
        foreach ($terms as $term) {
            $term_slug = $term->slug;
            $baseterm = str_replace($siteurl, '', get_term_link($term->term_id, 'product_cat'));
            add_rewrite_rule($baseterm . '?$','index.php?product_cat=' . $term_slug,'top');
            add_rewrite_rule($baseterm . 'page/([0-9]{1,})/?$', 'index.php?product_cat=' . $term_slug . '&paged=$matches[1]','top');
            add_rewrite_rule($baseterm . '(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?product_cat=' . $term_slug . '&feed=$matches[1]','top');
        }
    }
    if ($flash == true)
        flush_rewrite_rules(false);
}
add_filter( 'init', 'devvn_product_category_base_same_shop_base');

add_action( 'create_term', 'devvn_product_cat_same_shop_edit_success', 10, 2 );
function devvn_product_cat_same_shop_edit_success( $term_id, $taxonomy ) {
    devvn_product_category_base_same_shop_base(true);
}


Вот это вроде должно помочь!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GrifasOfficial
@GrifasOfficial
GEEK
Это пробовали?

Here is a solution:
Go to Woocommerce – Products tab
Set the following like this:
Shop page -> Shop
Shop Page Display -> Show products
Default Category Display -> Show products
Save changes

Go to Settings – Permalinks

[Common Settings section]
Set the following like this:
Post name yourdomain.com/sample-post

[Optional section]
Category base – leave empty
Tag base – leave empty
Product category base -> shop
Product tag base – leave empty
Product attribute base – leave empty

[Product Permalinks section]
Custom base -> /%product_cat%
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы