Structure permalien souhaitée (seules ces structures existent pour les produits)
Product 1: /shop/category/subcategory/product1/
Product 2: /shop/category/product2/
Paramètres d'affichage du produit Woocommerce
View for shopbase: Show categories
View for categories: Show products
Produits
Products are only checked for one category OR subcategory
Paramètres de lien permanent
Normal settings: /%category%/%postname%/
Base for categories: shop
For products: /shop/%product_cat%/
Archives
Since there are over 100 subcategories, I want to use an archive to list all
the products.
Avec les tentatives ci-dessous, j'ai été en mesure de produire un Product-page
de travail, mais aussi 404:ing
la page de sous-catégorie. Je ne sais plus quelle option produit quel résultat.
%category%/%product_cat%
, %category%/%product_cat%/%postname%
, %product_cat%/%product_cat%
, shop/%product_cat%
, shop/%product_cat%/%postname%
et toutes les combinaisons ci-dessus avec une terminaison /.
également404
.Qu'est-ce que je fais de mal ou quelle partie puis-je recâbler pour que cela fonctionne? Tellement reconnaissant pour des conseils, des pistes ou des réponses. Merci d'avoir lu ceci!
J'ai pu résoudre ce problème avec le code suivant qui génère rewrite_rules pour chaque sous-catégorie, ce qui est préférable lors de la mise en correspondance, car il est plus spécifique:
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');