programing

woocommerce의 범주 및 제품에 대한 동일한 기본 URL

iphone6s 2023. 6. 16. 21:32
반응형

woocommerce의 범주 및 제품에 대한 동일한 기본 URL

woocommerce에서 카테고리와 제품에 대해 동일한 기본 URL을 가질 수 있습니까?현재 카테고리 페이지에 404가 표시되지만 제품은 정상적으로 작동합니다.

제가 하려는 것은 둘 다 기본적인 "가게" 카테고리를 가지고 있다는 것입니다: demo.com/shop/category/ 제품: demo.com/shop/category/product-name

솔루션은 Woocommerce용 Permalinks입니다.

이것을 당신의 기능에 추가해 보세요.php

function wpse_291143_generate_taxonomy_rewrite_rules( $wp_rewrite ) {

    global $wp_rewrite;
    $base = "shop";

    $rules = array();
    $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => false ));

    foreach($terms as $term) {
        $term_children = get_terms( array(
            'taxonomy' => 'product_cat',
            'parent' => intval($term->term_id),
            'hide_empty' => false
            )
        );
        if($term_children) {
            foreach ( $term_children as $term_child ) {
                $rules[$base . '/' . $term->slug . '/' . $term_child->slug . '/?$'] = 'index.php?product_cat=' . $term_child->slug;
            }
        }
    }

    $wp_rewrite->rules = $rules + $wp_rewrite->rules;
    return $wp_rewrite->rules;
}

add_action('generate_rewrite_rules', 'wpse_291143_generate_taxonomy_rewrite_rules');

답변을 확인할 수 있습니다. https://stackoverflow.com/a/73333483/6835106

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;
} );

이 코드를 함수에 추가합니다.php

언급URL : https://stackoverflow.com/questions/54853939/same-base-url-for-categories-and-products-in-woocommerce

반응형