Création d’une section d’articles connexes dans wordpress

Publié par Jean-Michel le

J’essaie de créer une section de publication connexe dans mon thème personnalisé wordpress. L’objectif ici est que si l’utilisateur visualise un message dans une certaine catégorie, il affichera également tous les messages de cette catégorie ci-dessous. J’ai joint une image ci-dessous.

http://i255.photobucket.com/albums/hh140/testament1234/relatedposts_zpsa830adfc.jpg

Comment puis-je y parvenir ? Est-ce que j’utilise wp_query comme ça ?

<?php query_posts('cat=6', 'posts_per_page=-4=-'); if(have_posts()) : while(have_posts()) :the_post(); ?>

Le code ci-dessus définit la catégorie dans laquelle il obtient le message. ‘chat’

Solution de kwncc

    <div id="post-container" class="eleven columns alpha omega post">

         <?php $postCategories = ''; while ( have_posts() ) : the_post(); ?>
         <h2 class="post-title"><?php the_title() ?></h2>

         <?php setPostViews(get_the_ID()); ?> <!-- Set Post Views -->

         <ul class="meta-icons-large">
            <li id="meta-author-large"><span><?php the_author_posts_link() ?> /</span></li>
            <li id="meta-categories-large"><span><?php the_category(', ') ?> /</span></li>
            <li id="meta-comments-large"><span><?php comments_number() ?> /</span></li>
            <li id="meta-date-large"><span><?php the_time('F jS, Y') ?> /</span></li>
            <li id="meta-views-large"><span><?php echo getPostViews(get_the_ID()); ?></span></li> <!-- Display Post Views -->
         </ul>

         <?php the_content(); ?>

         <?php endwhile; ?>
    </div>


    <div id="related-posts-container" class="eleven columns alpha omega related-post">
         <h2>related posts</h2>

         <?php $postCatIds = ''; foreach($postCategories as $catIndex => &$catValue){
            $postCatIds .= $category->cat_ID; if( $catIndex < (count($postCategories)-1)){ $postCatIds .= ', ';
                       }
            }
            ?>

         <?php query_posts('cat='.$postCatIds, 'posts_per_page=4'); if(have_posts()) : while(have_posts()) { the_post(); } ?>

         <div id="related-post-thumbnail-container" class="three columns alpha related-posts">

             <h3><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>

         </div>

          <?php endwhile; endif; wp_reset_query();?>

   </div>

   <div id="comments-container" class="eleven columns alpha omega comments">
        <?php comments_template('', true); ?>
   </div>


</div>

Solution n°1 trouvée

Cette page se compose de 2 boucles différentes : 1. pour le contenu principal – article de la publication 2. pour les publications connexes.

Pour la première partie, il vous suffit d’inclure la boucle. De plus, puisque vous voulez trouver les publications liées à cet article, vous devez également obtenir les catégories de publication actuelles.

Code PHP :

$postCategories = '';
if(have_posts()) : while(have_posts()){
   the_post();
   $postCategories = get_the_category();
   ...
}

Ensuite, pour la deuxième partie où vous souhaitez inclure les publications associées, vous pouvez obtenir les identifiants de catégorie liés à la publication actuelle et créer la requête dont vous avez besoin.

// get comma separated category IDs
$postCatIds = '';
foreach($postCategories as $catIndex => &$catValue){

   $postCatIds .= $category->cat_ID;
   if( $catIndex < (count($postCategories)-1)){
     $postCatIds .= ', ';
   }
}

//query the related categories posts
query_posts('cat='.$postCatIds, 'posts_per_page=4');
if(have_posts()) : while(have_posts()) {
   the_post();
   ...
}

J’espère que cela pourra aider!

Solution n°2 trouvée

Je vous suggère de ne pas charger les publications associées au chargement de la page, car cela nuira considérablement aux performances de votre site Web.

Le plugin WordPress gratuit Related Posts pour WordPress trouve automatiquement les publications connexes (entre autres basées sur le titre) et les met en cache pour vous, vous offrant de véritables publications connexes sans nuire aux performances de votre site Web. Une fois la liaison automatique effectuée, vous pouvez, si nécessaire, ajouter, modifier ou supprimer manuellement les publications associées. Le plugin est également livré avec des balises de modèle afin que vous puissiez afficher les publications associées n’importe où dans votre thème personnalisé que vous souhaitez. Utilisez simplement rp4wp_children()dans votre thème où vous souhaitez que les publications associées soient affichées.

Vous pouvez l’essayer via le repo WordPress.org : http://wordpress.org/plugins/related-posts-for-wp/

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *