Code pour articles similaires et tags (Créer un compte)

  • Statut : non résolu
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #529546
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.6
    – Version de PHP/MySQL : 5
    – Thème utilisé : Graphène thème enfant
    – Extensions en place : SEO by YAST, subscribe 2, contact form,
    – Nom de l’hebergeur : ovh
    – Adresse du site : lirezvous.com

    Problème(s) rencontré(s) :
    Bonjour,
    Souhaitant placer à la fin des articles, des suggestions d’articles similaires, j’ai inséré dans le fichier loop-single.php le code suivant, juste avant :

    <?php
    $tags = wp_get_post_tags($post->ID);
    if ($tags) {
        $tag_ids = array();
        foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    
        $args=array(
            ‘tag__in’ => $tag_ids,
            ‘post__not_in’ => array($post->ID),
            ‘showposts’=>5, // Le nombre de postes similaires à afficher.
            ‘caller_get_posts’=>1
        );
        $my_query = new wp_query($args);
        if( $my_query->have_posts() ) {
            echo ‘<h3> 5 articles similaires :</h3><ul>‘;
            while ($my_query->have_posts()) {
                $my_query->the_post();
            ?>
                <li><a href="<?php the_permalink() ?>” rel=”bookmark” title=”Lire l’article <?php the_title_attribute(); ?>“><?php the_title(); ?></a></li>
            <?php
            }
            echo '</ul>‘;
        }
    }
    ?>

    Et cela fonctionne très bien, ce qui est génial car je peux ainsi me passer de plugin.
    Le problème c’est que les tags visibles à la fin d’un article ne sont pas ceux de l’article mais ceux du dernier articles de la liste des articles similaires proposés. Donc, ça ne va pas.
    Quelqu’un pourrait m’aider pour solutionner cette difficulté ?

    En vous remerciant par avance

    #918320
    CAMEO172
    Participant
    Maître WordPress
    1395 contributions
    petitecirce wrote:
    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.6
    – Version de PHP/MySQL : 5
    – Thème utilisé : Graphène thème enfant
    – Extensions en place : SEO by YAST, subscribe 2, contact form,
    – Nom de l’hebergeur : ovh
    – Adresse du site : lirezvous.com

    Problème(s) rencontré(s) :
    Bonjour,
    Souhaitant placer à la fin des articles, des suggestions d’articles similaires, j’ai inséré dans le fichier loop-single.php le code suivant, juste avant :

    ID);
    if ($tags) {
        $tag_ids = array();
        foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    
        $args=array(
            ‘tag__in’ => $tag_ids,
            ‘post__not_in’ => array($post->ID),
            ‘showposts’=>5, // Le nombre de postes similaires à afficher.
            ‘caller_get_posts’=>1
        );
        $my_query = new wp_query($args);
        if( $my_query->have_posts() ) {
            echo ‘<h3> 5 articles similaires :</h3><ul>‘;
            while ($my_query->have_posts()) {
                $my_query->the_post();
            ?>
                <li><a href="” rel=”bookmark” title=”Lire l’article “></a></li>
            <?php
            }
            echo '</ul>‘;
        }
    }
    ?>

    Et cela fonctionne très bien, ce qui est génial car je peux ainsi me passer de plugin.
    Le problème c’est que les tags visibles à la fin d’un article ne sont pas ceux de l’article mais ceux du dernier articles de la liste des articles similaires proposés. Donc, ça ne va pas.
    Quelqu’un pourrait m’aider pour solutionner cette difficulté ?

    En vous remerciant par avance

    normal !
    Ta requête fait changer par 5 fois l’Id du Post et quand tu appelles ensuite les tags, il va les chercher vis à vis de l’id en mémoire.

    Peux tu indiquer par quel code se fait l’affichage des tags ?
    est-ce avec un code comme celui-ci (si non l’essayer) :
    the_tags( Mot clef, ‘,’, );

    #918321
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Merci CAMEO172

    Voici le code pour l’affichage des tags dans le fichier loop_single.php

    
    			
    				<p class="post-tags"></p>
    			

    Même si ce n’est pas exactement la même chose, il y a bien the_tags( Mot clef, ‘,’, );

    J’ai choisi ce code car il permet de sélectionner les articles similaires en fonction des tags, ce qui est pratique mais là, ça m’embête d’avoir ces confusions.

    #918322
    CAMEO172
    Participant
    Maître WordPress
    1395 contributions

    Je suis avant tout un grand pragmatique et pas du tout grand expert (même si je sais coder).

    à la fin de tes articles similaires, peux tu essayer en ajoutant cette requête : wp_reset_postdata();

    plus d’info sur celle-ci à ce lien : http://codex.wordpress.org/Function_Reference/wp_reset_postdata

    #918325
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Et bien, ta suggestion :
    FONCTIONNE PARFAITEMENT !!!!!

    Super ! Merci beaucoup pour cette solution et pour avoir pris le temps de me répondre CAMEO172.

    #918324
    Flobogo
    Modérateur
    Maître WordPress
    16343 contributions

    Bonjour,

    Ce serait possible d’avoir le code complet qui fonctionne bien ? 😇
    Un grand merci d’avance 🙂

    #918323
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Bonjour,

    Voici le code qui fonctionne chez moi à placer dans loop-single.php après

    ID);
    if ($tags) {
        $tag_ids = array();
        foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    
        $args=array(
            ‘tag__in’ => $tag_ids,
            ‘post__not_in’ => array($post->ID),
            ‘showposts’=>5, // Le nombre de postes similaires à afficher.
            ‘caller_get_posts’=>1
        );
        $my_query = new wp_query($args);
        if( $my_query->have_posts() ) {
            echo ‘<h3> 5 articles similaires :</h3><ul>‘;
            while ($my_query->have_posts()) {
                $my_query->the_post();
            ?>
                <li><a href="” rel=”bookmark” title=”Lire l’article “></a></li>
            <?php
            }
            echo '</ul>‘;
        }
    }
    wp_reset_postdata()
    ?>

    Sinon Flogobo, tu as actualisé Graphène depuis notre dernière discussion ?

    #918326
    Flobogo
    Modérateur
    Maître WordPress
    16343 contributions

    Merci beaucoup ! Pour quelqu’un qui débute, tu te débrouilles rudement bien ! 👏
    Je garde ce code précieusement, il faudra juste que je vérifie si il fonctionne sur les pages (peut-être, du fait que j’ai le plugin Ninja pages, categories and tags)

    Non, je n’ai pas mis Graphène à jour, trop peur de galérer … 😕 Mais j’y pense régulièrement, et comme j’ai quelques jours de congés à la Toussaint, je me pencherais peut-être à nouveau sur cette question :rolleyes:

    #918327
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Honnêtement, j’essaie de me “dépatouiller” et parfois je patauge… 😉

    Mais heureusement que ce forum est là, il permet vraiment d’avancer sur les points problématiques.

    Pour Gaphène, je vais encore attendre pour faire la MAJ. Vu que je n’avais pas vraiment trouvé la solution la dernière fois suite aux pb de MAJ et que j’avais fini par réinstaller la précédente version, je me dis qu’il vaut mieux attendre. Et honnêtement, ce thème est vraiment beau… alors ce n’est pas évident de l’abandonner si vite.

9 sujets de 1 à 9 (sur un total de 9)
  • Vous devez être connecté pour répondre à ce sujet.