نمایش تعداد بازدید مطالب در وردپرس(بدون نصب افزونه)

به عنوان بلاگر یا تولید کننده محتوا مرتبا مطالب و پست های مختلفی در وب سایت تان قرار می دهید، برخی از این محتوا مورد توجه مخاطبان قرار می گیرند و از محبوبیت بالایی برخوردار می شوند و بعضی ها خیر. اما چگونه می توانیم میزان توجه بازدیدکنندگان را اندازه گیری کنیم؟ بدیهی است که اگر یک پست خاص بیشتر از همه دیده شده باشد از سایر مطالب محبوب تر است.

برای نمایش تعداد بازدید می توانید از افزونه های مختلفی مثل WP PostViews و Post Views Counter استفاده کنید، اما هدف ما انجام اینکار بدون نصب پلاگین اضافی است، پس در ادامه مراحل کار را بررسی می کنیم.

ذخیره تعداد بازدیدها در دیتابیس

در گام نخست تعداد بازدیدهای هر پست را در دیتابیس وردپرس ذخیره می کنیم، برای اینکار کدهای زیر را در فایل functions.php قرار دهید.

function set_post_view_custom_field() {
    if ( is_single() ) {
        global $post;
        $post_id = $post->ID;
        $count = 1;
        $post_view_count = get_post_meta( $post_id, 'post_view_count', true );
        if ( $post_view_count ) {
            $count = $post_view_count + 1;
        }
        update_post_meta( $post_id, 'post_view_count', $count );
    }
}
add_action( 'wp_head', 'set_post_view_custom_field' );

 

نمونه کد بالا در هر بار رفرش صفحه مشاهده مطلب(single.php) تعداد بازدیدها را محاسبه کرده و در متغیر count$ نگهداری می کند، سپس با تابع update_post_meta مقدار این متغیر را در جدول wp_postmeta ذخیره می کنیم.

ذخیره تعداد بازدیدها در جدول wp_postmeta

در این مثال از زمینه های دلخواه استفاده شده است، برای آشنایی بیشتر مطلب چگونه از زمینه های دلخواه یا Custom Fields استفاده کنیم؟ را مطالعه فرمائید.

نمایش تعداد بازدید در پنل وردپرس

حال زمان آن رسیده است که تعداد بازدید هر مطلب را در پنل مدیریتی وردپرس نشان دهیم، اول از همه ستون سفارشی “تعداد بازدید” را به لیست همه نوشته ها اضافه می کنیم، پس کدهای زیر را در functions.php قرار دهید.

function add_post_view_count_column( $columns ) {
    if( is_array( $columns ) && ! isset( $columns['post_view_count'] ) )
        $columns[ 'post_view_count' ] = 'تعداد بازدید';
    return $columns;
}
add_filter( 'manage_posts_columns', 'add_post_view_count_column' );

 

در مرحله بعد مقدار ستون “تعداد بازدید” را به کمک تابع get_post_meta از دیتابیس فراخوانی کرده و ست می کنیم.

function set_post_view_count_column( $column_name, $post_ID ) {
    if ( $column_name == 'post_view_count' ) {
        $count = get_post_meta( $post_ID, 'post_view_count', true );
        echo $count ? $count : 0;
    }
}
add_action( 'manage_posts_custom_column', 'set_post_view_count_column', 10, 2);

 

نتیجه کار بدین صورت خواهد بود.

ستون تعداد بازدید در لیست نوشته ها

نمایش تعداد بازدید در قالب سایت

برای نمایش تعداد بازدید در قالب سایت کد زیر را به فایل functions.php اضافه نمائید.

function get_post_view_count( $post_id ){
    return get_post_meta( $post_id, 'post_view_count', true );
}

 

حال تابع get_post_view_count را در فایل های single.php و index.php(بسته به طراحی قالب) فراخوانی می کنیم.

<li>
     <i class="fa fa-heart-o"></i>
     <span>
        <?php
                if ( function_exists( 'get_post_view_count' ) ) {
                   echo get_post_view_count( get_the_ID() ) . ' بازدید ';
               }
            ?>
     </span>
</li>

 

کار تمام است، خروجی نهایی را در تصویر زیر مشاهده می کنید.

نمایش تعداد بازدید مطلب در فرانت سایت

نظرات و سوالات کاربران
    1. سلام دوست عزیز، دو کار میشه انجام داد:
      ۱- یک فیلد سفارسی تعریف کنید که به ازای هر پست تعداد بازدیدهای روزانه رو نگهداری کنه، اینجوری میشه تعداد بازدید کل هر پست در یک روز رو محاسبه کرد، مجموع تعداد بازدیدهای هر پست میشه جمع کل بازدیدها.
      ۲- همین کار با یک جدول اختصاصی انجام بدید تا ای دی پست و تعداد بازدید رو نگهداری کنه.

      فقط باید بازدیدهایی که توسط بات های نرم افزاری انجام میشه را تشخیص بدید و از کاربر واقعی تفکیک کنید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *