نمایش آمار بازدید از مطالب بدون نیاز به افزونه

دسته‌ها : پی اچ پی, وردپرس علی میرزائی 67 دیدگاه‌ها

نمایش بازدید از مطالب بدون نیاز به افزونه

یکی از بخش های مهم هر سایت، بدست آوردن آمار بازدید از مطالب منتشر شده و گاها نمایش آن است. این آمار را در وردپرس، می توان توسط افزونه هایی همچون post veiws و… به دست آورد. اما، امروز آموزشی را تدارک دیده ایم که توسط آن بدون نیاز به هیچ گونه افزونه، به راحتی قادر خواهید بود آمار بازدید از مطالب خود را بدست آورید.

برای این منظور، دوتابع را به صورت زیر تعریف می کنیم (این کدها را در فایل توابع (function.php)  قالب خود قرار دهید):

function set_post_views( $postID ) 
{
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        // delete old 'post_views_count' value.
        delete_post_meta( $postID, $count_key );
        // add new 'post_views_count' value.
        add_post_meta( $postID, $count_key, '0' );
    } else {
        $count++;
        // update old 'post_views_count' value.
        update_post_meta( $postID, $count_key, $count );
    }
}

function get_post_views( $postID )
{
    $count_key = 'post_views_count';
    $count = get_post_meta( $postID, $count_key, true );
    if($count=='') {
        // delete old 'post_views_count' value.
        delete_post_meta( $postID, $count_key );
        // add new 'post_views_count' value.
        add_post_meta( $postID, $count_key, '0' );

        return "0 بازدید";
    }

    return $count.' بازدید';
}

این دو تابع با دریافت آی دی هر پست (با تابع get_the_ID که جلوتر به آن خواهیم رسید) به ترتیب کار ثبت و نمایش آمار بازدید از هر مطلب را انجام میدهند.
این دوتابع از شرط هایی ساده بهره گیری کرده اند، به عنوان نمونه، تابع set_post_views  با استفاده از تابع پیشفرض وردپرسی get_post_meta آمار ثبت شده ی هر پست را در متغیر $count می ریزد و در صورت خالی نبودن متغیر، شرط دوم اجرا شده و یک واحد به آن اضافه می شود. سپس نوبت به روزرسانی اطلاعات آماری است که این کار هم توسط تابع update_post_meta انجام میگیرد.

جهت آشنایی با توابع پیشفرض استفاده شده می توانید مستندات وردپرس را مطالعه کنید:

و اما در آخرین مرحله، لازم است تا توابع بالا را فراخوانی و سپس چاپ کنیم. پس به صورت زیر عمل کنید:

مرحله اول:

جهت ثبت اطلاعات، تابع زیر را داخل حلقه (while) در فایل تک نوشته ها (single.php) قرار دهید.

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

 مرحله دوم:

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

<?php echo get_post_views (get_the_ID()); ?>

و به همین سادگی کار به اتمام میرسد…

منبع : دنیای وردپرس و برنامه نویسی – www.alimir.ir

راستی اگه این مطلب رو مفید دیدید، لایک فراموشتون نشه :)

دیدگاه کاربران در مورد این نوشته

  1. باعرض سلام وخسته نباشید خدمت شما . آقا علی چندتا درخواست ازتون داشتم .1- میشه قالب وب سایتتون رو بهم بدهید آخه خیلی از قالبتون خوشم میاد.2- از چه قالبی برای این بخش ABOUT.ALIMIR.IR استفاده می کنید؟ لطفا اگه میشه این قالب رو بهم بدید.لازم دونستم یکم از خودم بگم. رحمت حاجی سعدین هستم. در شهرستان اشنویه واقع در آذربایجان غربی زندگی میکنم . درضمن کرد (کورد) زبان هستم . 1 سالی میشه کارم رو با پی اچ پی و سی اس اس و …. شروع کرده ام . راستی داشت یادم می رفت که عید نوروز رو به شما تبریک بگویم. سال نو رو به شما وخانواده ی گرامی تان تبریک عرض می کنم.( جژنی نه وروز و سه ری سالی کوردی له ءوه و بنه ماله ی به ریز تان پیروز بیت) با تشــــــــــــــــکر رحمت حاجی سعدین

    توسط رحمت حاجی سعدین پاسخ

  2. با عرض سلام و خسته نباشید خدمت شما آقا علی . یه درخواست ازتون داشتم میشه من هم از قالب وب ساییتتون برای سایتم استفاده کنم اگه میشه لطفا قالب رو بهم بدید از طریق ایمیلم. راستی داشت یادم می رفت که سال نو رو به شما وخانواده ی گرامی تان تبریک عرض بنمایم. سال نو رو به شما وخانواده ی گرامی تان تبریک عرض میکنم. به امـــــــــــــید اینکه قالب وب سایتتون رو به من هم بدهید تا من هم از قالبتون استفاده کنم . با تشــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــر

    توسط رحمت حاجی سعدین پاسخ

    1. سلام آقای سعدین،
      منم سال نو رو به شما و خانواده محترمتون تبریک میگم.
      عذر میخوام، پوسته سایت ما اختصایه و امکانش نیست که به صورت رایگان قالب رو در اختیار شما بذاریم.
      با احترامات…

      توسط علی میرزائی پاسخ

  3. با تشکر فراوان

    توسط طراحی سایت پاسخ

  4. با سلام خسته نباشید مخوستم ازشما دوتاسوال کنم به هرحال که هچکس جواب من را نداده شماهم اگه ندادید مشکل نداره به هرحال من خودم یک قالب طراحی کرد اما بعدش ام ابزارک غیر فعال شده وهم این کدهای که شما هم داید کارنمی کند ممنون میشم که مشکل من را حل کنید ممنون ازشما از سایت شما

    توسط زمان الله پاسخ

    1. سلام،
      1- برای فعال سازی بخش ابزارک ها، باید تابع register_sidebar رو در فایل functions و تابع dynamic_sidebar (به همراه نام آی دی) رو در فایل sidebar قرار بدید. (نمونه این کدها رو میتونید در مستندات و همینطور پوسته های پیشفرض وردپرس مشاهده کنید.)
      2- منظورتون کدهای این آموزش؟!؟! مراحل رو به دقت پیاده سازی کنید، مشکلی نخواهید داشت.

      توسط علی میرزائی پاسخ

  5. من همه کدهارو جاگذاری کردم
    کد آخر رو که جاگذاری کردم مثلن هدر سایت
    بدون شکل و شمایل بود
    سپاس از آموزش خوبتون
    اگر بخایم مثل سایت شما آمار بازدید دارای شکل و شمایل و اندازه فونت و رنگ باشه
    باید چه کارهای دیگه ای باهاش انجام بدیم؟

    توسط افتاب پاسخ

    1. مشکلی نیست، میتونید با css بهش استایل بدید.

      توسط علی میرزائی پاسخ

  6. با سلام آموزش خوبی بود.
    ولی اگر بخواهیم که تعدا بازدید هر مطلب در پنل وردپرس نمایش داده شود باید چیکار کنیم.به این صورت که وقتی به « همه ی نوشته ها » می رویم آنجا در مقابل عنوان هر مطلب تعدا دیدگاه را نشان می دهد و کاری کنیم که در همان جا تعداد بازدید هر مطلب و برگه را نیز نشان دهد
    ممنون می شوم راهنمایی کنید

    توسط سایان نت پاسخ

    1. سلام،
      این مورد رو هم مدتی پیش در یک پست مجزا توضیح دادیم:
      http://tiny.alimir.ir/Aa

      توسط علی میرزائی پاسخ

      1. ممنون.ولی در لینکی که گذاشتید من آموزش مورد نطر را نتونستم پیدا کنم.حتی جستجو هم کردم ولی نیتجه ای نبود.میشه لینک خود آن مطلب را بدهید.با سپاس

        توسط سایان نت پاسخ

  7. تشکر فراوان

    توسط عباس پاسخ

  8. اگر امکان داره نحوه ساخت و کدنویسی قسمت نظرات مطالب رو آموزش بدهید ممنون…

    توسط طاها پاسخ

  9. آقا ممنون بسیار عالی بود…

    توسط طاها پاسخ

  10. بسیار عالی و ممنون

    توسط طراحی وب سایت پاسخ

  11. pingback
  12. سلام
    من میخوام که آمار بازدید فقط در پنل مدیریت نشون داده بشه
    این کد را باید کجای قالبم قرار بدم :

    توسط مجید پاسخ

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

      توسط علی میرزائی پاسخ

  13. مرسی کاربردی بود

    توسط armin پاسخ

  14. ham aliye ham mishe tosh dast burd. :)

    توسط Z . G . K پاسخ

  15. جالب بود.

    توسط برنامه نویس پاسخ

  16. سلام

    من روی قالب سایتم از این کد استفاده کرده ام ففقط یک مشکلی دارم که تو سامانه پرسش و پاسخ مطرح کرده ام و اینجا هم مطرح میکنم چون خیلی ضروریه:

    w3 total cache من ورژن ۰٫۹٫۲٫۱۱ است و تو تنظیمات یک سری آیتم های جدید اضافه شده است که تو آموزش هایی که در سایت ها هست ورن قدیمی این افزونه و این آیتم های جدید رو نداره حالا مشکل من با این افزونه این هست :

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

    چه تنظیمی باعث شده که با مرورگر فایرفاکس درست کار نکند ؟

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

    توسط مجید پاسخ

    1. سلام،
      الان نمیدونم! باید بررسی کنم.

      توسط علی میرزائی پاسخ

  17. دمتون گرم

    توسط saeed پاسخ

  18. ممنون، آموزش جالبی بود.
    اگه ممکنه باکس جستجوی سایتتون رو در نوار سمت چپ قرار بدید که توی تک نوشته ها هم امکان جستجو وجود داشته باشه.
    ممنون

    توسط airin پاسخ

    1. سلام،
      ممنونم، چشم حتما به این مورد رسیدگی میکنم.

      توسط علی میرزائی پاسخ

  19. آقا عالی بود . ممنون

    توسط آرین پاسخ

    1. ممنونم، نظر لطفتونه…

      توسط علی میرزائی پاسخ

  20. سلام
    ممنون عالی هست
    من یه چیزی میخوام که آمار بازدید رو فقط خودم بدونم یعنی کاربران نتونند ببینند ؟
    چطور میشه اینکار رو کرد؟

    توسط djmostafa پاسخ

    1. سلام،
      اگه میخواید این مسأله تو تک نوشته ها باشه، با یک دستور ساده if میتونید مشخص کنید که آمار تنها برای مدیر وبسایت قابل مشاهده باشه.

      توسط علی میرزائی پاسخ

      1. درود
        اگه ممکنه دستور if رو بهش اضاف کنید و کدی که باید تو single.php بکار ببرم رو بدین تا اضاف کنم

        توسط djmostafa پاسخ

        1. سلام،
          به عنوان نمونه میتونید مستندات وردپرس رو مطالعه کنید:
          http://codex.wordpress.org/Function_Reference/is_user_logged_in

          توسط علی میرزائی پاسخ

دیدگاه خود را بیان کنید