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

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

برای نمایش تعداد بازدید می توانید از افزونه های مختلفی مثل 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. سلام دوست عزیز، دو کار میشه انجام داد:
      ۱- یک فیلد سفارسی تعریف کنید که به ازای هر پست تعداد بازدیدهای روزانه رو نگهداری کنه، اینجوری میشه تعداد بازدید کل هر پست در یک روز رو محاسبه کرد، مجموع تعداد بازدیدهای هر پست میشه جمع کل بازدیدها.
      ۲- همین کار با یک جدول اختصاصی انجام بدید تا ای دی پست و تعداد بازدید رو نگهداری کنه.

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

  1. سلام وقت بخیر مهندس یاورنیا عزیز
    action wp_head بیشتر در چه مواقعی استفاده میشه و برای چه کارهایی می تونیم ازش استفاده کنیم
    ممنون

    1. سلام امین عزیز.
      پلاگین هایی که نصب میکنی، اکشن هوک های wp_enqueue_scripts و admin_enqueue_scripts و خود وردپرس فایل های موردنیازشون مثل JS، CSS و … رو از طریق اکشن هوک wp_head به صفحه وب اضافه می کنند.
      عملا بدون wp_head هیچ افزونه ای به درستی کار نمیکنه، برای همینه که در طراحی قالب وردپرس اولین چیزی که به تگ head ساختار HTML اضافه می کنیم wp_head است و باید همیشه وجود داشته باشه.

دیدگاهتان را بنویسید

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