問題の概要
商品のパーマリンクを「ショップベース (カテゴリー付き)」に設定してWPML Multilingual & Multicurrency for WooCommerceを使用している場合、ERR_TOO_MANY_REDIRECTSエラーが発生することがあります。
この問題は、商品が「翻訳可能 – 翻訳があれば使用し、なければデフォルト言語にフォールバックする」に設定されており、商品カテゴリーも翻訳可能である場合に発生します。セカンダリ言語に切り替える際、翻訳された商品のURLが正しく解決されず、無限リダイレクトループが発生します。
回避策
この問題はWPML Multilingual & Multicurrency for WooCommerce 5.5.3で修正されました。 更新するとサイト上の問題は解決するため、この回避策が必要になるのは、まだ更新できない場合のみです。
続行する前に、必ず完全なサイトバックアップを作成してください。
- テーマのfunction.phpファイルを開きます。
- 以下のコードを追加します。
add_filter( 'wc_product_post_type_link_product_cat', 'custom_modify_product_cat', 10, 3 ); function custom_modify_product_cat( $primary_term, $terms, $post ) { // Example: Replace the primary term if the product has a specific category if ( $post->post_type === 'product' ) { foreach ( $terms as $term ) { $termid = apply_filters( 'wpml_object_id', $term->term_id, $term->taxonomy, TRUE ); $term = get_term( $termid, $term->taxonomy ); return $term; } } return $primary_term; }