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

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

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

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

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

برای این کار ابتدا کد زیر را به فایل Functions.php قالب اضافه کنید

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 "بدون بازدید";
}
return $count.' بازدید';
}

// function to count views.
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);
}
}
?>

خوب بعدش باید به حلقه ی پست برید در فایل index.php و single.php اگر داخل فایل ایندکس نبود ممکن فایلی به نام content.php داشته باشید و کد حلقه ی پست در اون فایل باشه.

اطلاعات بیشتر : حلقه ی پست را پیدا کنید بستگی به کد نویسی قالب شما داره ممکن مثلا تاریخ نوشته وجود داشته باشه , دسته بندی ها و …  در کنار این بخش ها باید کد زیر را هم برای نمایش تعداد بازدید از مطلب قرار بدید.

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

خوب خسته نباشید کار تمومه می تونید نتیجه کار رو ببینید , یه بخش دیگه هم در قسمت مدیریت وردپرس می تونید یه باکس ایجاد کنید برای نمایش بازدید ها که فقط مدیر می تونه مشاهده کنه برای این کار هم کد زیر را در فایل Functions.php قرار بدید.

add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['post_views'] = __('بازدید');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}
?>

حال به بخش مدیریت وردپرس برید ( بخش داشبورد ) و باکس ایجاد شده را مشاهده کنید.

امیدوارم مفید واقع بشه براتون …

یک نظر

  1. هادی قربانی

    با سلام
    سایتتون رو در سرور انلاین اپلود بکنید و دوباره تست کنید و حتما اسکنش بکنید . فایلی که به آن اشاره شده هم نباید در سایتتون وجود داشته باشه مگر اینکه وردپرستون ویروسی شده باشه

  2. saeed

    با سلام و خسته نباشید. من فعلا از localhost استفاده می کنم. وقتی کارایی که گفتی رو انجام میدم این ارور رو میده :
    FATAL ERROR: CALL TO UNDEFINED FUNCTION GET_THE_ID() IN C:\WAMP\WWW\SHOP\INDEX-MORE.PHP ON LINE 44
    میگه تعریف نشده get_the_id .حالا مشکل از کجاست؟ ممنون میشم جواب بدین

  3. مجید غفورزاده

    سلام
    در ابتدای کد یه <?php داره که فراموش کردین بذارین.
    با تشکر از سایت خوبتون

  4. هادی قربانی

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

  5. Milad

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

  6. علی امیر

    با سلام من از این کد استفاده کردم ولی هر بار سایت رو رفرش می کنم عوض 1 بازدید ، 2 تا بازدید اضافه میشه مشکل از کجاست ؟؟؟ کد ها رو هم بعد از حلقه گذاشتم؟؟

  7. م.ع

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

  8. هادی قربانی

    شما کد رو فقط به فایل single.php اضافه کردید برای بخش های مختلف باید فایل های مختلف رو ویرایش و کد رو داخلشون قرار بدید.
    بهترین حالت همین جوری هست که الان قرار دادید

  9. محمد

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

  10. بابک

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

  11. هادی قربانی

    این کد با کلیک کار می کنه این امکانی که شما میگید باید از روی آی پی بشاسه که بحثش جداست

  12. بابک

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

  13. hassan

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

  14. هادی قربانی

    پوشه includes فایل post-meta.php کد زیر رو بردارید

    <?php setPostViews(get_the_ID()); ?><?php echo getctPostViews(get_the_ID()); ?> 
    
  15. امین

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

  16. امین

    سلام
    چرا هر بار که به صفحه ی اصلی سایت میرم آخرین مطلبی که وارد کردم یه واحد به تعداد بازدید کنندش اضافه میشه
    از همین کدای شما استفاده کردم و کامل کار میکنه فقط مشکل همینه که بالا ذکر کردم؟؟؟؟

  17. هادی قربانی

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

  18. محمد مهدی

    سلام
    نمیشه یه جور پیشرفته تر درستش کنید که برای هر IP فقط یه بار برای هر پست شمارش بشه. این کدی که شما دادین با هر بار رفرش صفحه یکی به آمار اضافه میکنه
    مثلا مثل این نظرسنجی ها که فقط یه بار (در ماه/ سال / روز / …) میشه نظر داد .
    ممنون

  19. امیرحسین

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

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

  20. هادی قربانی

    می خواید لینک رو تو منوها قرار بدید ؟ قالب از فهرست های وردپرس پشتیبانی می کنه ؟ اگه اره تو از قسمت ( مدیریت وردپرس/ نمایش / فهرست ها ) تو قسمت پیوند نام و لینک رو قرار بدید و به منو اضافش کنید.
    اگه قالب از فهرست ها پشتیبانی نمی کنه باید قسمت منوها داخل فایل header.php باشه , اونایی که نوشته ( خانه / تماس با ما ) , یه گزینه دیگه اضافه کنید به نام انجمن لینکش رو قرار بدید.

  21. امیرحسین

    ی کمک دیگه

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

  22. امیرحسین

    الان ی دونس دیگه.
    تا صد تا هم میرسه گاهی

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

  23. امیرحسین

    8pic.ir/images/57444659041891690731.jpg

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

  24. هادی قربانی

    افزونه ای که نصب کرده بودید رو غیر فعال کنید , از چه افزونه ای استفاده می کنید یعنی این خطا ها کجا نمایش داده میشه ؟

  25. امیرحسین

    سلام من درست کردم اون قسمتو مشکلم حل شد.
    ولی بجای بازدید نوشته view

    چجوری فارسیش کنم

    ی سوال دیگه اینکه من تو قسمت seo گزینه ی monitor404 برام هی ارور میاد
    لینک مینویسه برام که روشون کلیک میکنم مینویسه موضوع یافت نشد.میتونید کمک کنید

  26. هادی قربانی

    یه کم به کدها توجه کنید اون تاریخ نوشته و نویسنده هر کدوم تو یه div قرار دارن با کلاس مخصوص که داخل استایل براش استایل نوشته شده مثلا ایکون مخصوص خودشون و فاصله ها و… کمی به کدها توجه کنید می تونید شبیه اونها براش استایل بنویسید.

  27. امیرحسین

    8pic.ir/images/32192598420829729429.jpg

    8pic.ir/images/72768393017615922806.jpg

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

    <img src="/images/PostDateIcon.png” width=”17″ height=”18″ alt=”” />

    <img src="/images/PostAuthorIcon.png” width=”14″ height=”14″ alt=”” />
    :
    ID)): ?><img src="/images/PostEditIcon.png” width=”14″ height=”14″ alt=”” />

    این کد اون قسمته..کادر مطلب.کجا بزارم تا درست بشه ؟

  28. امیرحسین

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

  29. هادی قربانی

    100 در صد همین طور بوده , شما داخل لینک ویرایش قرار دادید که فقط برای مدیر اونم وقتی وارد مدیریت میشه قابل نمایش هست.

  30. هادی قربانی

    کدی که باعث نمایش مطالب میشه ( در فایل index.php و single.php ) , کد مربوط به اون تاریخ و نوشته رو که در بالای پست ها قرار داره پیدا کنید در کنار اون ها قرار بدید.

  31. امیرحسین

    این کدو توی فایلا گذاشتم

    گذاشتم کنار ویرایش
    نکنه بخاطر اونه ؟؟یعنی کدای اون روش تایرگذاشته و باعث میشه عین ویرایش برای من نشون داده بشه ؟

  32. امیرحسین

    خوب بعدش باید به حلقه ی پست برید

    حلقه یعنی چی؟کد دومو که ی خطه باید بعد از چی قرار بدیم ؟؟

  33. امیرحسین

    همین پلاگینی که نام بردین

    چرا وقتی با مرورگر دیگه هستم نشون نمیده
    باید حتما داخل پنل باشم تا نشون داده بشه

  34. هادی قربانی

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

  35. امیرحسین

    سلام
    من از افزونه استفاده میکنم ولی فقط برای من نمایش داده میشه
    باید چیکار کنم ؟؟تنظیماتم نداره پلاگین.مربوط به کداشه فک کنم.

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

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