Pages

Showing posts with label post view count. Show all posts
Showing posts with label post view count. Show all posts

Tuesday, June 10, 2014

How to display wordpress posts view count? - [Solved]

1. Please write below code in functions.php

<?php
// function to display number of views for post
function wp_get_post_views($postId){
    $count_key = 'count_post_views';
    $count = get_post_meta($postId, $count_key, true);
    if($count == ''){
        delete_post_meta($postId, $count_key);
        add_post_meta($postId, $count_key, '0');
        return '0 View';
    }
    return $count.' Views';
}

// function to set post views
function wp_set_post_views($postId) {
    $count_key = 'count_post_views';
    $count = get_post_meta($postId, $count_key, true);
    if($count == ''){
        $count = 0;
        delete_post_meta($postId, $count_key);
        add_post_meta($postId, $count_key, '0');
    }
else
{
        $count++;
        update_post_meta($postId, $count_key, $count);
    }
}

// add views column to wp_admin
add_filter('manage_posts_columns', 'wp_posts_views_column');
function wp_posts_views_column($defaults){
    $defaults['post_views'] = __('Views');
    return $defaults;
}

add_action('manage_posts_custom_column', 'wp_posts_views_custom_column',10,2);
function wp_posts_views_custom_column($column_name, $id){
    if($column_name === 'post_views'){
        echo wp_get_post_views(get_the_ID());
    }
}
?>

2. Now, open singe.php and add below code inside the loop.


<?php
wp_set_post_views(get_the_ID());
?>

3. Please write below code for display views of post.

<?php
wp_get_post_views(get_the_ID());
?>


4. If you want to sort post by view than add below code:

<?php
$args = array(  'numberposts'  => 10,
                'orderby'      => 'meta_value',
                'meta_key'     => 'count_post_views',
                'order'        => 'DESC',
                'post_type'    => 'post',
                'post_status'  => 'publish'
            );
$mostViewedPosts = get_posts( $args );
foreach( $mostViewedPosts as $mostViewedPost ) {
/* Write your code here */
}
?>