WooCommerce URL에서 / shop / 제거

Nov 26 2020

현재 제품 URL이 다음과 같이 생성되는 WooCommerce 설치가 있습니다.

domain.com/shop/product-category/product-name/

SEO 및 현재 사이트 구조로 인해 다음과 같이 변경하고 싶습니다.

domain.com/product-category/product-name/

woocommerce_get_breadcrumb 필터를 사용하여 이동 경로에서 상점을 제거하는 방법을 알고 있지만 URL 자체를 처리하는 방법을 잘 모르겠습니다.

내가 Stack Overflow에서 찾은 것은 Premmerce라는 플러그인을 설치하도록 권장하는 사람들입니다. 이 플러그인에는 프리미엄 버전이 있으며 지속적으로 업그레이드해야하는 번거 로움 : WooCommerce의 URL에서 / product-category / 및 / shop / 제거

내 플러그인 또는 functions.php에서 프로그래밍 방식으로이 작업을 수행하고 싶습니다.

답변

Sefam Nov 28 2020 at 02:40

WooCommerce는 class-wc-admin-permalink-settings.php를 통해 영구 링크 패널에 / % product_cat % / 만 입력하려고하면 / product /를 강제합니다. wc 영구 링크는 "woocommerce_permalinks"라는 옵션입니다. / % product_cat % / 만 갖고 싶기 때문에 가장 우아한 솔루션은 아니지만 강제로 사용할 수 있습니다.

add_action( "update_option_woocommerce_permalinks", "apply_product_cat", 10, 3 );

function apply_product_cat( $old_val, $new_val, $option_name ) { if ($option_name == "woocommerce_permalinks") {
        $new_val['product_base'] = "/%product_cat%/"; update_option( "woocommerce_permalinks", $new_val );
    }
}

Premmerce가하는 일은 효과적으로 다른 관리자 패널을 제공하는 것입니다.이 패널은이 옵션에 저장됩니다.