Warning: Creating default object from empty value in /home/alimirir/public_html/wp-content/plugins/alimir-menu/redux/ReduxCore/inc/class.redux_filesystem.php on line 29

Warning: Cannot modify header information - headers already sent by (output started at /home/alimirir/public_html/wp-content/plugins/alimir-menu/redux/ReduxCore/inc/class.redux_filesystem.php:29) in /home/alimirir/public_html/wp-content/plugins/download-monitor/src/DownloadHandler.php on line 367
نمایش آمار بازدید از مطالب بدون نیاز به افزونه

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

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

یکی از بخش های مهم هر سایت، بدست آوردن آمار بازدید از مطالب منتشر شده و گاها نمایش آن است. این آمار را در وردپرس، می توان توسط افزونه هایی همچون 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. سلام
    چطوری میشه یه شمارنده برای بازدید کل ایجاد کرد اونم بدون افزونه؟

    توسط reza پاسخ

  2. ممنونم مطلب خوبی بود

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

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

  3. ممنون کاربردی بود
    فقط یه مشکل هست
    مثل اگه کاربر با افزونه wp-post view قبلا با یه قالبی داشته کار میکرده حالا من براش یه قالب دیگه برای زدم کل بازدید های که توسط wp-post-view ثبت شده می پره ایا راهی هست که با این کد کاری کرد که مثل قبلا 1000 تا بازدید داشته این پست با این کد بگه از 1000 شروع کن نه از 0
    ممنون می شم راهنماییم کنی

    توسط reza پاسخ

  4. سلام دوست عزیز ببخشید میشه یه نگاهی به آمار سایت من بندازید این کد شما همینقدر جا میگیره تو سمت راست یا بیشتر؟؟
    http://hichopoch.ir/

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

    1. سلام؛ متوجه نشدم! لطفا توضیح بیشتری بدید…

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

  5. واقعا عالی بود ممنون

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

  6. ممنون مطلب مفیدی بود استفاده بردیم

    توسط اسد اسماعیلی پاسخ

    1. قابلی نداشت اسد جان {گل}

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

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

    توسط محمد پاسخ

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

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

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

        توسط محمد پاسخ

        1. آی پی رو برای دقیق کردن آمار (یعنی آمار بازدیدکننده ها و نه بازدیدها) مثال زدم و اصلا روش اشتباهی نیست.
          وقتی صفحه رفرش میشه، هیچ فرقی با اینکه بازدیدکننده دوباره به همون مطلب برگرده نداره. (دیگه غیر از اینکه نمیشه کاری کرد یا حداقل من اطلاعی ندارم.)

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

  8. عالی .

    توسط F5 پاسخ

  9. dadash damet garm hame site ha code hash ba har refresh yeki ezafe mishe tu index vali in code doroste
    eyval 😉

    توسط javad پاسخ

  10. ممنون خیلی خوب و مفید بود از شر افزونه wp-post-view خلاص کردی 🙂 راه اندازی وردپرس با یه افزونه کمتر .

    توسط علی پاسخ

  11. سلام علی آقا.
    آموزشی که گذاشتید کمی از دیگران باز بهتره ، ولی طوری هست که برای کسانی بدرد میخوره که کاملا توابع رو حفظ هستند و حداقل یک بار قالب درست کردند.علی آقا به این فکر کنید که کاربران زیادی هستند که به توضیح بیشتری نیاز دارند.من طبق آموزش شما کامل و با دقت عمل کردم ولی هیچ اتفاقی در هیچ کجای سایت نمیوفته.
    سوالاتم رو مطرح میکنم.اگر امکانش و داشتید و صلاح دونستید ممنون میشم کمکم کنید.
    این نوشته ها برای فانکشن رو دقیقا بین چه خطوطی باید جای گذاری کنم؟؟؟
    =========================================
    در مرحله اول این تابع() در بین کدامیک از خطهای زیر باید قرار بگیره.فرمودید در حلقه while ..حلقه while خودش مگر یک تابع نیست؟
    منظور شما اینه که تابعی که فرمودید رو در وسط یک تابع دیگه باید جای گذاری کنم؟؟
    در سینگل من while به شکل زیر هست.

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

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

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

  12. با سلاتم و درود مجدد آقا علی اگه ممکنه شماره موبایلتون رو برام ایمیل کنید تا باهم صحبت کنیم یا از طریق ایمیل .با تشکر

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

    1. آقا رحمت، کلا با ایمیل مشکل داریا!!! 🙂 فرم تماس که هست، خوب یه ایمیل بزن تا منم پاسخ رو برای بار چندم بهت ایمیل کنم…

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

  13. باعرض سلام وخسته نباشىد خدمت استادگلم اقاى على مىرزاىى. اقا على منم به نوابه ى خودم از زحمات بى پابانتون تشکر مى گنم .اقا على خىلى کامنت دادم مى خوام اگه بشه قالب ساىتتون رو بهم بفروشىد.خواهس مى کنم جوابمو بدىد. بازم ازتون تسکر مى کنپ ببخشىد اگه غلط املاىى داشتم مرحمت زىاد

    توسط اتل پاسخ

    1. ممنونم رحمت جان! عزیز دلم، منم هر دفعه پاسخ کامنت های شما رو دادم. منتها شما انگار اصلا پاسخ ها رو نمیخونید!!! (باز هم تکرار میکنم، در مورد فروش قالب قبلی، باید بهم ایمیل بزنید تا در اونجا مفصل صحبت کنیم.)

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

  14. سلام ممنون
    یه سوال اگر بخواهیم از این کد در صفحه index استفاده کنیم به چه صورت چون من برای خلاصه مطالب در صفحه index قرار دادم حالا هر وقت صفحه رو ریفرش میکنم یک بازدید به تمام پست ها اضافه میکنه بدون اینکه وارد پست ها بشم !!!!

    توسط علی پاسخ

    1. سلام، برای فایل index فقط باید از تابع get_post_views استفاده کنید.

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

  15. سلام .
    آره ! یه سر به وب بزنید ! بعضی از پست ها رو 0 میزنه 🙁 ! ولی بقیه اش خوب کار می کنه 🙂

    توسط Android پاسخ

  16. سلام خوبید ؟
    خسته نباشید 🙂
    دست شما درد نکنه !
    من هر کاری می کنم 0 بازدید میزنه 😐
    میشه کمک کنید …!!!

    توسط Android پاسخ

    1. سلام،
      آیا مراحل گفته شده رو با دقت انجام دادید؟!؟ تابع set_post_views داخل حلقه است؟!؟

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

  17. بسیار ممنون دوست عزیز

    توسط اکبر قره باغی پاسخ

  18. سلام زود قضاوت نکنید
    این ادرس سایت منه (rapfa.2host.ir) البته دمو سایته
    – چطور من میتونم در کنار بخش مطالب محبوبم که در سایتمه تعداد بازدیداشون رو هم نمایش بدم تاکید میکنم فقط در بخش مطالب محبوب البته اینم بگم بدون اضافه کردن افزونه سایتمو یه نیگا کنید متوجه میشید منظورم چیه مطالب محبوبم همچیش تکمیله فقط امار بازدید نداره
    راستی تو هر انجمنی هم که مطرحش کردم فایده نداشت جوابای بی سرو ته میدادن
    البته اگه افزونه ای هم باشه که امار بازدید رو همراه با عکس و امار بازدید نشون بده هم خوبه
    ممنونم

    توسط ehsan پاسخ

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

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

    1. توضیحات رو براتون ایمیل کردم، لطفا با اون ایمیل مکاتبه کنید.

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

  20. با سلام و درود مجدد خدمت شما آقا علی . لطف کنید قیمیت قالبتون رو برام بنویسید باتشــــــــــــــــــــکر

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

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