Salut les gars,
Dans ce tutoriel nous allons voir comment on peut filtrer les résultats d'une liste par un champ date.
Dans le tutoriel suivant, nous allons utiliser les plugins et modèles premium suivants :
Fichier personnalisé avancé (ACF)
Didacticiel vidéo
S'abonner à mon canal :
Imaginons que nous créons une page d'événements et que nous ayons besoin qu'une fois l'événement terminé, il n'apparaisse pas dans la liste de notre site Web.
Quelque chose comme ça:
Comme je l'ai dit, nous voulons qu'une fois l'événement passé, il n'apparaisse pas dans la liste.
Il y a plusieurs solutions possibles, celle qui m'est venue est la suivante :
- Créer un champ Date avec ACF
- Filtrer par ce champ les résultats dans FacetWP
Créer un champ Date avec ACF
Grâce à ACF nous pouvons créer un champ date, dans mon cas j'ai créé un champ appelé Date de suppression du travail
Lorsque je remplis un travail, il ressemble à ceci:
Pourquoi n'ai-je pas utilisé le même champ de date du travail ?
Vous vous demandez peut-être pourquoi je n'ai pas utilisé le champ de date de performance.
Je ne l'ai pas fait pour deux raisons :
1ère Raison de ne pas utiliser le champ de la date de la représentation
Car il faudrait aussi que je prenne en compte le temps de la représentation pour ne pas retirer l'oeuvre prématurément.
2ème Raison
Une œuvre peut avoir plusieurs dates de représentation, il me serait donc difficile de savoir laquelle utiliser.
Pour ne pas devenir fou j'ai pensé qu'il valait mieux utiliser un nouveau champ pour la date pour faire disparaître l'oeuvre.
Une fois que j'ai le champ prêt, je dois ajouter le filtre dans FacetWP
Créer un filtre dans FacetWP
Pour ce faire, nous allons dans Paramètres -> FacetWP et dans le modèle (Modèles) que nous utilisons, nous allons dans l'onglet Requête et ajoutons le filtre suivant :
Dans le filtre suivant, nous indiquons à FacetWP que si la date de suppression du travail est supérieure à la date actuelle, le résultat est filtré, c'est-à-dire qu'il n'apparaît pas.
Nous utilisons NOW pour que la date du filtre soit dynamique et prenne en compte la date du moment où la QUERY est exécutée.
C'est la façon dont j'ai trouvé pour créer un filtre dynamique.
Pouvez-vous penser à une autre façon de le faire? Partagez-le avec nous 😉