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

چندی پیش در نوشته‌ی “افزونه آمارگیر وردپرس” به مهم و حائز اهیمت بودن آمار بازدید سایت از جهاتِ گوناگون برای مدیران تارنماها اشاره کردیم که این موضوع برای کاربران یک سایت نیز می‌تواند مهم و قابل توجه باشد که در این نوشته با آموزش نمایش تعداد دفعات بازدید از مطالب وردپرس توسط کاربران و چگونگی نمایش آن در پوسته‌های وردپرس در خدمت شما دوستان گرامی خواهیم بود.

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

برای اضافه کردن قابلیت نمایش تعداد بازدید مطالب وردپرس در قالب وردپرس خود ابتدا فایل فانکشن (functions.php) پوسته را برای ویرایش باز کنید (خواهشمندیم پیش از ایجاد هر تغییری در این فایل از آن نسخه پشتیبان تهیه نمایید تا در صورت بروز خطا آن را به حالت اول بازگردانید)

در مرحله‌ی اول دستور زیر را برای نمایش تعداد بازدید از نوشته‌ها در محل مناسبی از فایل Functions قرار دهید:

function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 بازدید";
}
return $count.' بازدید';
}
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

پس از اضافه کردن دستورات فوق و ذخیره‌ی تغییرات امکان شمارش تعداد بازدید از مطالب وردپرس فراهم گردیده است که در مرحله‌ی بعدی برای عملکرد صحیح دستورات، کد زیر را به فایل Single.php پوسته وردپرس اضافه می‌کنیم (حتما توجه داشته باشید که تابع زیر باید درون حلقه مطالب وردپرس قرار گیرد) :

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

در مرحله‌ی آخر نیز پس از گذراندن مراحل بالا می‌توانید از دستور چاپی زیر برای نمایش تعداد بازدید مطالب وردپرس در فایل‌هایی همچون index, archive, search و… استفاده نمایید (لازم به ذکر است عملکرد صحیح این دستور نیز مستلزم قرارگیری آن در حلقه ی مطالب وردپرس است):

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

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


کانال تلگرام ماندگار وب

  1. مکباف

    اقا تشکر … هر چی کمتر از افزونه استفاده کنیم برای سایت مفیدتره

    1. امیر خلجی مهر

      خواهش میکنم
      درسته اکثر افزونه ها معمولاً اونطوری که ما توقع داریم بهینه نیستند و فایلهای مختلفی مثله جی اس و استایل رو به حجم خروجی برگه های وب اضافه میکنند

  2. SM-Mahdavi

    عالی بود امیرجان. مرسی + خسته نباشید

    1. امیر خلجی مهر

      خواهش میکنم، سلامت باشین مرتضی جان

  3. وحید محمدی

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

  4. احسان

    سلام
    وبسایت بسیار خوبی دارید، فقط یک سوال داشتم.
    میشه توی این کد کاری کرد که وقتی روی دکمه ای توی همون مطلب کلیک کردن، به امار مطلب اضافه بشه، مثلا وقتی روی لینک دانلود کلیک کردند، به این امار اضافه بشه، یعنی همون تعداد دانلود ؟؟
    ممنون میشم جواب بدید.

    1. امیر خلجی مهر

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

  5. پردیس

    سلام من وقتی کدهارو قرار میدم هنگام بروز رسانی با این پیغام رو به رو میشم Not Acceptable

    An appropriate representation of the requested resource /wp-admin/theme-editor.php could not be found on this server.

    Apache/2 Server at haminekehast.ir Port 80
    باید چی کار کنم لطفا راهنمایی کنید.

    1. امیر خلجی مهر

      درود بر شما
      مشکل پیش اومده ارتباطی با این نوشته نداره و مرتبط با سرورتون هست که بهتره با هاستینگ در تماس باشید

  6. SaeeD

    آغا کار نکرد . ما هرکاری میکنیم نمیشه . همون روی صفر باقی مونده .
    لطفا نگاهی کنید ما رو راهنمایی کنید
    تشکر

    1. امیر خلجی مهر

      چرا عاغا جون کار میکنه، ما هم داریم استفاده میکنیم
      بهتره کمی بیشتر دقت کنید تو استفاده از دستورات

  7. Milad

    سلام امیر جان اول ممنون بابت آموزش
    فقط نمیدونم چرا کار نمیکنه!
    روی صفر قفله و هرچقدرم پست رو باز و بسته میکنیم تغییری نمیکنه 🙁

    1. امیر خلجی مهر

      درود بر شما
      دوست خوبم شما مطمئن هستید؟ تو ماندگار از همین کدها داریم استفاده میکنیم، در انجمن مطرح کنید شاید مشکل از جای دیگری هست

  8. سجاد حاجی احمدی

    سلام
    عالی بود . امیدوارم که همیشه و به همین ترتیب موفقیت های خوبی کسب کنی.
    موفق باشید.

  9. محمد

    سلام و ممنون از آموزش
    کار میکنه ولی با هر بار رفرش یه بازدید اضافه میشه
    که زیادم بد نیست 🙂

    1. امیر خلجی مهر

      درود
      خب قربونتون برم باید همینطور باشه دیگه 🙂

  10. ماهانا

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

    1. امیر خلجی مهر

      بفرمایید :
      wordpress.org/plugins/wp-postviews

  11. احسان

    دنبال تکه کدی برای نمایش لیست 5 تا از پر بازدید ترین مطالب برای 45 روز گذشته توست این کد هستم

  12. kamal

    سلام مرسی شما،
    من یه مشکلی دارم با هر بار رفرش 2 تا بازدید برام ثبت میشه .لطفا راهنمایی کنید.سپاس

    1. امیر خلجی مهر

      درود

      شاید همزمان با شما شخص دیگه ای هم در حال بازدید هست یا اینکه تابع دوبار اجرا میشه
      به هر حال این کد سالم و بدون مشکل هست و ما هم تو ماندگار وب داریم ازش استفاده میکنیم

      موفق باشید

      1. kamal

        مرسی از پاسخ . ولی نه چون من هر بار رفرش میکنم 2 بار ثبت میشه، همین کد رو در لوکال استفاده میکنم بخوبی کار میکنه ،
        فکر میکنید اشکال از کجاست دوست عزیز؟

        1. امیر خلجی مهر

          تو لوکال هم دقیقا از همون پوسته استفاده میکنید؟
          اگر پاسخ مثبت هست، افزونه ها رو غیرفعال و دوباره امتحان کنید

  13. kamal

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

    1. امیر خلجی مهر

      نمیدونم چی بگم جالب شد 🙂
      تو انجمن مطرح کنید تا دوستان بررسی کنند، شاید هم تابع دوبار اجرا میشه، به هر حال باید تو انجمن مطرح کنید تا دقیقا مشکل مشخص بشه
      این روش رو هم تست کنید، تو کد اصلی و تابع این دو مورد رو در هر جایی تغییر نام بدید
      setPostViews
      getPostViews

      مثلا getPostViews بشه getPostViewss

  14. رضا

    با سلام
    میخواستم کمک کنید که چطور میشه کد نمایش بازدید از مطلب زیر رو طوری تغییر بدم که هر بازدید ضرب در 5 بشه. در واقع میخوام با تغییر در کد بازدید از مطلب رو بیشتر نمایش بدم.
    این کد:

    لطفا کمک کنید

    1. امیر خلجی مهر

      درود

      مواردی که به توسعه کدها مربوط میشه رو باید در انجمن مطرح کنید دوست من

  15. Milad

    سلام
    من خیلی وقته از این کد استفاده میکنم فقط یه مشکلی هست :
    وقتی افزونه کش روی وردپرس نصب میکنم، عملکرد این کد دچار اختلال میشه و دیگه درست شمارش نمیکنه!!
    یه جورایی مثل اینکه پست یکبار که باز میشه، کش میشه و دیگه روی همون عدد می مونه تا یه مدت هرچندبارم کاربر پست رو ببینه اون عدد تغییر نمیکنه!!
    الان افزونه ی W3 Total Cache نصبه و این مشکل وجود داره بازدید پست ها از 1 یا 2 بالاتر نمیره!
    این مشکل برای چیه؟؟ نمیشه رفعش کرد؟

    1. امیر خلجی مهر

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

  16. بابک

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

    1. امیر خلجی مهر

      درود بابک جان
      اگر در کدها تغییری ایجاد نکنید آمار بازدید از بین نخواهد رفت، این آمار در دیتابیس ذخیره میشوند و ارتباطی با تعویض پوسته ندارند
      موفق باشید

      1. بابک

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

        1. امیر خلجی مهر

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

          1. بابک

            سپاس جناب خلجی گرامی

  17. کوروش

    سلام
    اقا من مراحلی که گفتید رو انجام دادم
    در انتها کد اخر رو در post php قرار دادم
    کل سایتم پاک شد …ههههههههههههههههههه
    حالا چه غلطی بنمایم… ای جان برادر

    1. امیر خلجی مهر

      کوروش جان، قربون اون نامت برم 🙂
      خودمون تو ماندگار داریم از این کد استفاده میکنیم و مشکلی نداره، احتمالا شما کدها رو بین سایر کدها قرار دادید و تداخلی ایجاد شده که باعث بوجود اومدن این مشکل شده
      برای رفع مشکل هم اگه پوسته رو از جایی دریافت کردید مجدد اینکار و انجام بدیدُ جایگزین کنید

  18. محسن

    با سلام خیلی خوب استفاده کردم
    یه سوال
    اگه بخوام لیست پربازدیدترین ها رو تو صفحه اول نشون بدم چ باید بکنم ؟

    1. امیر خلجی مهر

      درود
      اینو تست کنید (تو جایی که دوست دارید نمایش داده بشه قرار بدید)
      [php]
      < ?php $popularpost = new WP_Query( array( 'posts_per_page' => 4, ‘meta_key’ => ‘post_views_count’, ‘orderby’ => ‘meta_value_num’, ‘order’ => ‘DESC’ ) );
      while ( $popularpost->have_posts() ) : $popularpost->the_post();

      the_title();

      endwhile;
      ?>
      [/php]

  19. آموزش شبکه

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

    1. امیر خلجی مهر

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

  20. محمد

    سلام
    اگه بخوایم توی ادمین>نوشته هام این آمار رو مشاهده کنیم باید از چه کدی استفاده کنیم؟

    1. امیر خلجی مهر

      درود
      اینکار شدنی هست، تو انجمن مطرح کنید تا دوستان راهنمایی کنند.

  21. پیام

    سلام ببخشید واسه من دوتا دوتا بالا میره چرا؟

  22. پیام

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

    1. امیر خلجی مهر

      درود
      پیام جان دستور باید تو فایل سینگل قرار بگیره تا کد اجرا بشه و تو هر اجرا شماره به کانتر اضافه بشه
      مشکل چندتایی شمردن بازدید میتونه به بد ریست شدن کوئری و… بستگی داشته باشه
      شاد و پیروز باشید.

  23. امیر

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

    1. امیر خلجی مهر

      درود امیر جان
      کد هیچ مشکلی نداره دوست من، پیشنهاد میکنم در انجمن مطرح کنید تا دوستان با دقت بیشتری مشکل شما رو بررسی کنند:
      http://forum.wp-parsi.com/

  24. omid

    سلام چجوری میشه مطالب محبوب دسته جاری رو نشون داد مثلا دسته وردپرس باز شده محبوبترین مطالب همین دسته رو نشون بده اگه میشه فیلترشو بهش اضافه کنید
    4, ‘meta_key’ => ‘post_views_count’, ‘orderby’ => ‘meta_value_num’, ‘order’ => ‘DESC’ ) );
    while ( $popularpost->have_posts() ) : $popularpost->the_post();
    ?>

    1. امیر خلجی مهر

      درود بر شما
      د انجمن مطرح کنید:
      http://forum.wp-parsi.com

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

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

تنها دیدگاه‌هایی که به فارسی نوشته می‌شوند پذیرفته خواهند شد!

ماندگار وب - 1395
فروش - خرید هاست وردپرس فارسی