web-dev-qa-db-fra.com

Combinez plusieurs catégories dans un slug d'URL

J'ai un site web Wordpress avec plus de 20 catégories. Pour faciliter la navigation, je souhaite réduire les catégories tout en conservant les catégories d'origine. En d'autres termes, je veux pouvoir interroger plusieurs catégories avec un groupe de catégories ou un slug virtuel.

Exemple de catégories:

/category/apples/
/category/pears/
/category/bananas/

Je veux pouvoir les interroger tous les trois avec un slug d'URL unique:

/category/fruit/

Mais comme je l’ai dit, il devrait encore être possible d’aller dans i.e./category/bananas/

Je sais qu'il est possible d'interroger plusieurs catégories de la façon dont je veux utiliser/category/pommes, bananes, poires/mais ce n'est pas une solution élégante.

Est-il possible de faire ce regroupement virtuel avec un plugin ou même en utilisant une réécriture?

Les conseils et recommandations sont grandement appréciés!

1
Chris

Vous pouvez remplacer votre requête par pre_get_posts dans functions.php:

function add_all_fruits_to_category($query) {
    $catnames = $query->get('category_name');
    if ($catnames == 'fruits') {
        $query->set('category_name', $catnames . ',bananas,apples,pears');
    }
}
add_action('pre_get_posts', 'add_all_fruits_to_category');
4
Virgil Dupras

La fonctionnalité de sous-catégories intégrée de WordPress ne résoudrait-elle pas ce problème?

 + fruit
  + bananas
  + apples
  + pears

vous obtiendrez tous les fruits à travers

/categories/fruit

mais aussi des catégories spécifiques à travers

/categories/fruit/bananas

pour ajouter une sous-catégorie, choisissez simplement fruit comme catégorie parente pour chaque enfant.

2
Pekka 웃