web-dev-qa-db-fra.com

Comment afficher les articles liés par catégorie

Dans le site de ma galerie, je souhaite afficher d'autres images sous l'image actuelle (en post simple). J'ai vu plus de codes mais je demande de spécifier la catégorie, mais je ne veux pas spécifier la catégorie manuellement dans le code. Je veux que le code lui-même obtienne l'ID ou le nom de la catégorie. Ce serait beaucoup plus facile pour moi si j'obtenais des messages complets. au lieu de titre de poste afin que je puisse l'afficher comme dans la maison et la catégorie

4
Felix

La question a déjà été posée et la réponse a également été postée,

Comment afficher les messages liés de la même catégorie?

Ajoutez ce code dans votre single.php après une boucle où que vous vouliez montrer un post connexe,

<?php

$related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) );
if( $related ) foreach( $related as $post ) {
setup_postdata($post); ?>
 <ul> 
        <li>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <?php the_content('Read the rest of this entry &raquo;'); ?>
        </li>
    </ul>   
<?php }
wp_reset_postdata(); ?>

Il affichera les articles liés de la même catégorie avec l’extrait et le titre de l’article. Toutefois, si vous souhaitez que ce code n’affiche que le titre de l’article associé, supprimez cette ligne,

<?php the_content('Read the rest of this entry &raquo;'); ?>
13
Sufiyan Ghori

Voici une autre option propre et très flexible:

Mettez ce code dans votre fichier functions.php

function example_cats_related_post() {

    $post_id = get_the_ID();
    $cat_ids = array();
    $categories = get_the_category( $post_id );

    if(!empty($categories) && is_wp_error($categories)):
        foreach ($categories as $category):
            array_Push($cat_ids, $category->term_id);
        endforeach;
    endif;

    $current_post_type = get_post_type($post_id);
    $query_args = array( 

        'category__in'   => $cat_ids,
        'post_type'      => $current_post_type,
        'post_not_in'    => array($post_id),
        'posts_per_page'  => '3'


     );

    $related_cats_post = new WP_Query( $query_args );

    if($related_cats_post->have_posts()):
         while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?>
            <ul>
                <li>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    </a>
                    <?php the_content(); ?>
                </li>
            </ul>
        <?php endwhile;

        // Restore original Post Data
        wp_reset_postdata();
     endif;

}

Maintenant, vous pouvez simplement appeler la fonction n’importe où sur votre site en utilisant:

<?php example_cats_related_post() ?>

Vous voudrez peut-être supprimer les éléments de la liste ou les styler selon vos besoins.

1
Lawrence Oputa