27. WordPress: Gerelateerde berichten weergeven.

Om met elkaar gerelateerde berichten weer te geven in WordPress kan je kiezen voor 2 opties: met plugin of zonder plugin. Om zoveel mogelijk te vermijden dat we teveel plugins gaan gebruiken, geven we een mogelijkheid mee om het zonder plugin te doen. Uiteraard tonen we hierna ook nog enkele plugins waarmee je dit kan verwezenlijken.

Zonder plugin

Er zijn twee mogelijkheden: we zoeken gerelateerde berichten op basis van de categorie of we zoeken gerelateerde berichten aan de hand van de tags.

1: Op basis van categorieën.

Open single.php en ga op zoek naar volgende code:
<?php the_content() ?>

Daaronder voeg je volgende code toe:


    <?php
    $this_post = $post;
    $category = get_the_category(); $category = $category[0]; $category = $category->cat_ID;
    $posts = get_posts('numberposts=6&offset=0&orderby=post_date&order=DESC&category='.$category);
    $count = 0;
    foreach ( $posts as $post ) {
    if ( $post->ID == $this_post->ID || $count == 5) {
    unset($posts[$count]);
    }else{
    $count ++;
    }
    }
    ?>
 
    <?php if ( $posts ) : ?>
    <div class="related_articles">
    <h2>Gerelateerde berichten:</h2>
    <ul>
    <?php foreach ( $posts as $post ) : ?>
    <li><a href="<?php the_permalink() ?>" title="<?php echo trim(str_replace("n"," ",preg_replace('#<[^>]*?>#si','',get_the_excerpt()))) ?>"><?php if ( get_the_title() ){ the_title(); }else{ echo "Untitled"; } ?></a> (<?php the_time('F jS, Y') ?>)</li>
    <?php endforeach // $posts as $post ?>
    </ul>
    </div>
    <?php endif // $posts ?>
    <?php
    $post = $this_post;
    unset($this_post);
    ?>

2: Op basis van tags:

Zoek net dezelfde code als hierboven en voeg daaronder hetvolgende:


<?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, // Number of related posts that will be shown.
        'caller_get_posts'=>1
    );
    $my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
        echo '<h3>Gerelateerde berichten:</h3><ul>';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>
            <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
        <?php
        }
        echo '</ul>';
    }
}
?>

En dit is eigenlijk alles. Sla alles op en bekijk het resultaat.

Met plugin


Er zijn tal van plugins beschikbaar die je in staat stellen om gerelateerde berichten weer te geven. De plugins zijn iets uitgebreider dan de code die wij hebben gegeven: meestal nemen ze zowel tags als categories als titels in aanmerking. Het is dus overwegen wat je zelf wilt.

Enkele plugins:
  • Yet Another Related Posts Plugin: Je kan kiezen om dit automatisch op je website te laten vertonen of manueel ingeven waar dit moet komen te staan. Het is een goede plugin maar een beetje omslachtig als het aankomt op de meegeleverde templates die je kan gebruiken.
  • Contextual Related Posts: Deze plugin raad ik het meeste van allemaal aan. Het is eenvoudig en zeer correct en bevat voldoende opties met instructies. Dat ziet er als volgt uit:

    Je ziet op de afbeelding ook dat er wordt meegegeven wat er moet gedaan worden als je dit rechtstreeks in je theme wil implementeren.

  • WP-Thumbie: Deze plugin doet net iets meer door thumbnails te tonen bij de titels.
  • Meer plugins kan je vinden op de site van WordPress: klik hier om zelf te zoeken.

Wordpress theme maken of toch kopen?

Een Wordpress theme maken vergt veel werk, al is wat extra kennis altijd welkom. We maken zelf geen sites meer maar gebruiken nu de themes die terug te vinden zijn op: Theme Junkie. theme junkie Je kan op hun website ook gratis Wordpress themes terugvinden en downloaden!

Deze website gebruikt cookies om jou de beste ervaring te kunnen geven. Door deze website te gebruiken ga je hiermee akkoord. Meer info

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close