WooCommerceURLから/ shop /を削除する

Nov 26 2020

現在、WooCommerceをインストールしており、製品のURLは次のように生成されます。

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

class-wc-admin-permalink-settings.phpを介してパーマリンクパネルに/%product_cat%/のみを入力しようとすると、WooCommerceは/ 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が行うことは、効果的に別の管理パネルを提供することです。そこでは、彼らは自分でこのオプションに保存するだけです。