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

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

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

برای نمایش تعداد بازدید می توانید از افزونه های مختلفی مثل 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>

 

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

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

جمع بندی

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

برچسب ها
سعید یاورنیا 118 نوشته 130 دیدگاه

توسعه دهنده PHP و Wordpress
توسعه وب سایت یکی از کارهایی است که تلاش می کنم تخصصم رو در اون بالا ببرم، یادگیری تکنولوژی های جدید یکی از چالش هایی است که به شدت به آن علاقمند هستم.

دیدگاه ‌ها

  • سجاد ۵ آبان ۱۳۹۸ - ۰۳:۳۶

    سلام چطور می شود تعداد بازدید یکتای کل را در هر روز مشاهده کردن بدون افزونه

    • سعید یاورنیا ۱۰ آبان ۱۳۹۸ - ۱۴:۲۴

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

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

  • امین ۱۲ خرداد ۱۳۹۹ - ۱۱:۲۱

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

    • سعید یاورنیا ۱۲ خرداد ۱۳۹۹ - ۲۱:۱۳

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

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

نشانی ایمیل شما منتشر نخواهد شد، بخش‌های موردنیاز با * مشخص شده‌اند.