IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[WP] Filtre de fichier avec JS


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 79
    Points
    79
    Par défaut [WP] Filtre de fichier avec JS
    Hello

    Dans le but de filtrer une liste de fichier, j'ai créé une taxonomie :

    function.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
        register_taxonomy('pratiques','fold', 
            array(
                'label' => 'Pratique',
                'labels' => array(
                    'name' => 'Pratique',
                    'singular_name' => 'Pratique',
                    'all_items' => 'Toutes les pratiques',
                    'edit_item' => 'Éditer la pratique',
                    'view_item' => 'Voir la pratique',
                    'update_item' => 'Mettre à jour la pratique',
                    'add_new_item' => 'Ajouter une pratique',
                    'new_item_name' => 'Nouvelle pratique',
                    'search_items' => 'Rechercher parmi les pratiques',
                    'popular_items' => 'pratiques les plus utilisés'
                ),
                'hierarchical' => true,
                'show_admin_column' => true
            )
        );
    Cette taxonomie est bien appliqué au différents fichiers :

    Nom : Capture d’écran du 2022-06-20 14-34-43.png
Affichages : 72
Taille : 53,3 Ko

    Avec ce code j'arrive à avoir un premier résultat, j'ai le nom de ma taxonomie et la liste des différents fichiers

    single-out.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
                   <?php
                        $args = [
                            'public'=>true, 
                            'name'=>'pratiques',
                        ];
                        $categories = get_taxonomies($args, 'objects'); 
                    ?>
                    <ul class="cat-list">
                        <?php foreach($categories as $category) { ?>
                        <li>
                            <a class="cat-list_item" href="#!" data-slug="<?= $category->slug; ?>">
                                <?= $category->name; ?>
                            </a>
                        </li>
                        <?php }; ?>
                    </ul>
     
                    <?php 
                    $terms = wp_get_post_terms( $post->ID, 'pratiques');
                    $args = [
                        'post_type' => 'fold',
                        'posts_per_page' => -1,
                        'order_by' => 'date',
                        'order' => 'desc',
                    ];
                    $requete = new WP_Query($args);
                    if($requete->have_posts()){?>
                        <ul class="project-tiles">
                        <?php
                            while($requete->have_posts()){
                            $requete->the_post();
                            get_template_part('parts/post-loop-out');
                            };
                        ?>
                        </ul>
                    <?php }; wp_reset_postdata(); ?>
    post-loop-out.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div class="out">
        <a href="<?php the_permalink(); ?>">
            <?php the_title('<h2>','</h2>'); ?>
            <p><?php the_excerpt(); ?></p>
            <?php the_post_thumbnail('medium'); ?>
            <p><?php echo get_the_date(); ?></p>
        </a>
    </div>
    Je me suis beaucoup inspiré à cette page : https://weichie.com/blog/wordpress-f...sts-with-ajax/
    Mais le souci c'est que j'ai du mal à adapter à ce que je veux faire (il utilise les catégories et moi les taxonomies)et en plus je ne connais pas JQuery (la plupart de mes recherche sur ce sujet débouchait sur du JQuery)

    Nom : Capture d’écran du 2022-06-20 12-08-40.png
Affichages : 75
Taille : 75,9 Ko

    Du coup, je voulais déjà dans un premier temps faire ressortir dans la liste des fichiers sur la droite, en plus du nom, du résumé et de la date, sa taxonomie. J'ai tenté des choses suite à des recherches, mais ça marche pas.
    Dans un second temps, j'aimerais faire ressortir la liste des éléments de la taxonomie sur la gauche en cliquant sur "pratiques" et du coup pouvoir filtrer les fichier en fonction de la pratique sélectionné....
    Merci d'avance pour votre aide !

    Edit : J'ai trouvé la réponse à ma première question (qui était la plus simple ^^) sauf qu'en inspectant le code il me met la taxonomie dans un <a></a> ????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <?php the_terms(get_the_ID(),'pratiques');?>

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    sur le lien que vous montrez, les différents objets sont chargés par javascript une fois que l'utilisateur ait choisi la taxinomie.
    mais dans votre cas, vous voulez charger tous les objets au 1er chargement de la page et ensuite, l'utilisateur clique sur une taxinomie et ça cache les objets qui n'en font pas partie, c'est bien ça ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 79
    Points
    79
    Par défaut
    Hello

    Normalement il y a un premier filtrage qui est fait par le back office de WP avec un champ liaison ACF, vu que cette page est censé montrer que les diaporamas.

    Nom : Capture d’écran du 2022-06-21 09-07-34.png
Affichages : 61
Taille : 44,4 Ko

    On retrouve ce résultat un peu plus bas dans ma page et donc un premier filtrage est déjà fait en dur:

    Nom : Capture d’écran du 2022-06-21 09-09-50.png
Affichages : 73
Taille : 94,4 Ko

    Pour le coup, je pense qu'une partie de mon code est faux dans le sens ou je devrais récupérer que cette parties des fichiers et non tous...

    Et après pourvoir les filtrer en fonctions des différente pratiques.

    Donc oui,j'aimerais qu'il y ai déjà des fichiers affichés quand j'arrive sur cette page (diaporama) mais que les diaporamas géré par ACF en BO

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour lister les différentes valeurs de la taxinomie, vous pouvez utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$taxinomies = get_terms([
    		"taxonomy" => "pratiques",
    	]);
    regardez la documentation si vous voulez aussi afficher les valeurs qui n'ont pas de présentation associée :
    https://developer.wordpress.org/refe...ons/get_terms/

    ensuite quand vous avez fait cet affichage, vous aurez besoin de javascript pour cacher et afficher les éléments :
    https://javascript.developpez.com/fa...SS#affichObjet

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 79
    Points
    79
    Par défaut
    Alors pour afficher les taxonomies, j'ai trouvé entre temps !

    Nom : Capture d’écran du 2022-06-21 12-36-00.png
Affichages : 50
Taille : 72,2 Ko

    Ils apparaissent en orange sur l'image !

    Pour ce qui est du filtre, je pense que j'ai besoin de passer par une requête AJAX et faire apparaître ou disparaître les éléments en utilisant des cases à cocher, car par la suite j'aimerais faire évoluer ce filtre avec d'autres options comme le tri (chronologique ou alphabétique asc et desc) ou peut être avec d'autres cases à cocher voir par mot clé ! Je ne pense pas qu'un simple style.display soit suffisant pour ce genre de filtre :/

Discussions similaires

  1. Fenêtre de choix de fichier avec choix du filtre
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 0
    Dernier message: 22/01/2011, 19h20
  2. [WD14] Ajout enregistrement fichier avec filtre
    Par Dramon dans le forum WinDev
    Réponses: 5
    Dernier message: 17/02/2010, 20h23
  3. Effacer les fichiers avec un filtre sur la date
    Par BenoitM dans le forum Framework .NET
    Réponses: 3
    Dernier message: 25/03/2008, 17h02
  4. Recherche de fichiers avec filtre
    Par mimic50 dans le forum MFC
    Réponses: 1
    Dernier message: 24/10/2007, 21h58
  5. [C#][1.1]Lister Fichiers Avec Filtre
    Par Laeticia dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/06/2006, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo