Min blogg rullar på WordPress. Igår lade jag ut en funktion som visar relaterade poster genom att hitta andra poster med samma taggar. Jag valde att visa fyra relaterade inlägg och presentera deras posters tumnaglar/utvalda bilder och titel. Det underlättar för besökaren att navigera och hitta liknande inlägg som kan vara intressanta att läsa vidare. Jag lade också på ett filter som exkluderar taggarna #blogg100 och linkedin. Här visar jag koden.
#blogg100 använder jag för att kategorisera posterna som görs under #Blogg100-utmaningen och dessa poster behöver nödvändigtvis inte ha något inbördes relaterat. Och linkedin använder jag för att visa utvalda poster i min LinkedIn-profil.
Jag valde att inte använda mig av något plugin såsom Yet Another Related Posts Plugin eller Similar Posts utan lade in koden direkt i mitt tema.
#RelatedPosts ul { margin-bottom: 20px; list-style:none; } #RelatedPosts li { width:120px;border:1px solid #ccc;float:left;min-height:150px;margin-left:5px; text-align:center; padding-top:2px; } #RelatedPosts li:first-child { margin-left:0; } #RelatedPosts a { font-size:11px; } .clear {clear:both;} /* Denna har du troligtvis redan i din style.css-fil */
Lägg in följande kodsnutt där du vill att de relaterade posterna skall visas.
<?php $tags = wp_get_post_tags($post->ID); if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id; $toRemove=array(61,80); // linkedin, #blogg100 $tag_ids=array_diff($tag_ids, $toRemove); if(count($tag_ids)>0) { $args=array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID), 'showposts'=>4, // Number of related posts that will be shown. 'caller_get_posts'=>1 ); $my_query = new wp_query($args); if( $my_query->have_posts() ) { echo '<div id="RelatedPosts"><h4>Relaterat</h4><ul>'; while ($my_query->have_posts()) { $my_query->the_post(); ?> <li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"> <?php if ( has_post_thumbnail() ) { ?> <?php the_post_thumbnail(array(116,116)); ?> <?php } else { } ?> <?php the_title(); ?> </a> </li> <?php } echo '</ul></div><div class="clear"></div>'; wp_reset_query(); } } } ?>
Ändringen i style.css kanske inte slår igenom eftersom filen är cachad på besökarens dator. Då kan man tvinga browsern att ladda in den igen genom att lägga på en request-variabel t.ex. ?v=1. Koden hittar du i header.php.
<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css?v=1" />
Hej!
Jag har gjort en liknande funktion för att visa relaterade poster. Prova den gärna och ge mig lite feedback.
Du hittar den här: http://wp.me/p38LaD-8u
Visa relaterade poster efter ditt blogginlägg…
Blev lite inspirerad av ett inlägg på WPtuts+ om relaterade poster, så jag var tvungen att göra en egen funktion för detta. Kopiera och klistra in följande kod i din funktionsfil (functions.php). Testa den och ge mig gärna feedback på funktionen…….