Menampilkan Popular Post tanpa Plugin

September 19, 2018 Artikel,Snippets,WordPress Kholis Muhaimin

Sebenarnya kita bisa menampilkan Popular Post dengan plugin, tapi buat kamu yang males install plugin untuk menampilkan Popular post. Maka artikel ini cocok buat kamu, pertama kita harus copy paste script ke functions.php dan template lainnya, misal sidebar.php atau index.php.

Keunggulan script ini adalah menampilkan post yang popular berdasarkan views, bukan berdasarkan banyak nya komentar. Kelemahan berdasarkan komentar salah satunya jika web tersebut menonaktifkan fitur komentar, kalo komentar dimatikan maka popular post engga akan muncul.

Ok langsung aja ikutin step nya ya.

  1. Functions.php

// DIY Popular Posts @ https://digwp.com/2016/03/diy-popular-posts/
function shapeSpace_popular_posts($post_id) {
	$count_key = 'popular_posts';
	$count = get_post_meta($post_id, $count_key, true);
	if ($count == '') {
		$count = 0;
		delete_post_meta($post_id, $count_key);
		add_post_meta($post_id, $count_key, '0');
	} else {
		$count++;
		update_post_meta($post_id, $count_key, $count);
	}
}
function shapeSpace_track_posts($post_id) {
	if (!is_single()) return;
	if (empty($post_id)) {
		global $post;
		$post_id = $post->ID;
	}
	shapeSpace_popular_posts($post_id);
}
add_action('wp_head', 'shapeSpace_track_posts');
//
function time_ago( $type = 'post' ) {
    $d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';

    return human_time_diff($d('U'), current_time('timestamp')) . " " . __('ago');

}

2. Index.php

<h3>Popular Posts</h3>
<ul>
<?php $popular = new WP_Query(array('posts_per_page'=>7, 'meta_key'=>'popular_posts', 'orderby'=>'meta_value_num', 'order'=>'DESC'));
while ($popular->have_posts()) : $popular->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_postdata(); ?>
</ul>

Agar artikel muncul, kamu perlu mengklik satu persatu artikelnya. Gambar di bawah ini adalah tampilan Popular Post yang kita pasang tadi.

 

135 total views, 1 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail