Nous avons une vue qui a les paramètres suivants. Comment configurer la vue pour utiliser un paramètre de requête de l'URL pour filtrer les résultats?
Type de contenu de l'article (champs):
Afficher les filtres exposés (valeurs)
Sortie désirée:
www.mysite.com/news?type=Blog
, puis définissez les filtres Type = Blog et Category = All pour renvoyer les résultats de toutes les pages d'article où type = Blog et Category peuvent être quelconques (non nuls)www.mysite.com/news?type=Blog&Category=Security
puis filtrez les résultats pour renvoyer toutes les pages d'article où type = Blog et Category = SécuritéNous avons essayé d'ajouter un filtre contextuel avec les paramètres suivants uniquement, mais cela n'a pas fonctionné.
Vues Les filtres exposés fonctionnent déjà de cette façon, pas besoin de filtres contextuels.
Dans les paramètres de chaque filtre exposé, il existe une option pour taper Filter identifier
. C'est le texte qui sera utilisé pour ce champ dans la requête.
Dans votre cas, définissez le Filter identifier
De la catégorie sur Category
et celui du champ Type sur type
.
Si vous configurez les paramètres du filtre exposé Selection type
Pour ces deux filtres sur Dropdown
, vous devrez utiliser des ID de terme dans le lien pour faire fonctionner le filtre (je suppose que votre terme de sécurité a ID 6):
www.mysite.com/news?Category=6
Autocomplete
pour obtenir les noms des termes dans la requêteMais si vous définissez les paramètres du filtre exposé Selection type
Sur Autocomplete
, vous pourrez utiliser des noms de terme, ce que vous voulez.
www.mysite.com/news?Category=Security
ou
www.mysite.com/news?Category=Security+(6)
Drupal 8 ajoute l'ID du terme à côté du nom du terme lors du choix dans la liste de suggestions de saisie semi-automatique, mais cette partie n'est pas nécessaire. Vous pouvez créer le lien avec le nom de la catégorie uniquement et cela fonctionnera. Si le nom de la catégorie contient des espaces, remplacez-les par +
Dans la requête.
Si vous avez plusieurs filtres exposés, ils sont combinés, pour tous les types:
www.mysite.com/news?Category=Chemistry
ou
www.mysite.com/news?Category=Chemistry&type=
et pour certains types spécifiques en plus de la catégorie:
www.mysite.com/news?Category=Chemistry&type=Blog
ou changer l'ordre:
www.mysite.com/news?type=Blog&Category=Chemistry
Lors de l'utilisation des étiquettes d'entités dans les filtres, au lieu de l'ID, je dois "Spécifier les critères de validation" et sélectionner l'option appropriée. Dans ce cas, je validerais le "nom du terme de taxonomie". Ces options apparaissent dans le groupe "QUAND LA VALEUR DU FILTRE IS DANS L'URL OR UNE PAR DÉFAUT IS FOURNI").
Mise à jour: Je ne savais pas que vous utilisiez les filtres Exposé et Contextuel lorsque j'ai posté à l'origine - je pensais que vous utilisiez simplement Contextual. De plus, je pense que ce n'est pas une "meilleure pratique" d'utiliser des filtres contextuels et exposés pour le même filtrage, mais je pense que c'est bien (si vous voyez le comportement que vous voulez) parce que je ne connais pas de façon d'utiliser juste des filtres exposés et obtenez l'étiquette dans l'URL comme vous le souhaitez. Je parie qu'il y a un moyen d'utiliser du code personnalisé, mais je ne le sais pas.