Shortcode untuk Menampilkan Related Post

Kita telah belajar tentang pengertian dan dasar shortcode di Wordpress yang sudah diperkenalkan sejak Wordpress versi 2.5. Sekarang, mari belajar lebih jauh tentang penerapan shortcode wordpress ini untuk keperluan blog kita, yakni menampilkan Related Post. Ada banyak plugins untuk menampilkan related post, namun menggunakan shortcode merupakan cara pintar untuk mempercepat loading halaman blog kita karena meminimalisir penggunaan plugins.


Tuliskan kode berikut dalam file functions.php di tema yang anda gunakan :
function related_posts_shortcode( $atts ) {
extract(shortcode_atts(array(
'limit' => '5',
), $atts));

global $wpdb, $post, $table_prefix;

if ($post->ID) {
$retval = '<ul>';
// Get tags
$tags = wp_get_post_tags($post->ID);
$tagsarray = array();
foreach ($tags as $tag) {
$tagsarray[] = $tag->term_id;
}
$tagslist = implode(',', $tagsarray);

// Do the query
$q = "SELECT p.*, count(tr.object_id) as count
FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
AND p.post_status = 'publish'
AND p.post_date_gmt < NOW()
GROUP BY tr.object_id
ORDER BY count DESC, p.post_date_gmt DESC
LIMIT $limit;";

$related = $wpdb->get_results($q);
if ( $related ) {
foreach($related as $r) {
$retval .= '<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
}
} else {
$retval .= '
<li>No related posts found</li>';
}
$retval .= '</ul>';
return $retval;
}
return;
}
add_shortcode('related_posts', 'related_posts_shortcode');


Gunakan shortcode berikut di tempat dimana anda ingin related post muncul :

[related_posts]

Share this article :
 

+ comments + 1 comments

Post a Comment

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Bewegaleri Blog - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger