استفاده از این سیستم مدیریت محتوای خیلی عالی و انعطاف پذیر هر روز داره بیشتر میشه و ممکنه خود شما هم یکی از استفاده کنندگان این سیستم باشید،یکی از مزیتهای وردپرس اینه که میتونیم قسمتها و کدهای شخصی خودمون رو بر اساس ساختار خودش بهش اضافه کنیم،تعداد بازدید هر مطلب میتونه نشونه این باشه که اون مطلب از نظر کاربران سایت مهم و مفید بوده و ما از این طریق میتونیم به بقیه کاربران هم این پارامتر رو نشون بدیم،در این مطلب قصد داریم بدون استفاده از افزونه خاصی این قسمت رو برای مطالب سایت خودمون ایجاد کنیم.پس با سون لرن همراه باشید.
برای شروع فایل 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 "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); } }
در این تابع ما تعداد بازدید رو دریافت کردیم و اگر خالی نباشه یکی بهش اضافه میکنیم و دوباره ثبتش میکنیم.
روش استفاده
ما تابع دومی رو در حلقه فایل single.php پوسته خودمون استفاده میکنیم (فراخوانی میکنیم) و تابع اول رو در هر جایی که تمایل داشته باشم تعداد بازدید مطلب رو نشون بدیم (هم داخل فایل single.php و در داخل فایل index.php یا هر فایل دیگه ای که حلقه اصلی مطالب وردپرس داخلش قرار داره).
اضافه کردن تعداد بازدید در قسمت مدیریت
خوب برای اینکه تعداد بازدی هر مطلب رو در قسمت مدیریت نشون بدیم،این کدها رو بعد از دو تا تابع بالا به فایل 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'] = __('View'); return $defaults; } function posts_custom_column_views($column_name, $id){ if($column_name === 'post_views'){ echo getPostViews(get_the_ID()); } }
در این جا از hookهای وردپرس برای اضافه کردن این ستون به قسمت مدیریت مطالب سایت استفاده کردیم.از filter hook برای اضافه کردن ستون و از action hook برای نمایش مقدار ستون اضافه شده استفاده کردیم(استفاده از تابع اول)
پیشنهاد میکنم برای حفظ ماژولار بودن کدهای فایل functions.php و جلوگیری از زیاد شدن کدهای این فایل، فایل ضمیمه رو به صورت require_once به فایل functions.php اضافه کنید و کدهای داخل فایل ضمیمه رو داخلش کپی نکنید.
امیدورام براتون مفید بوده باشه.
سلام . یک مشکلی داره این کد . دقیقا همین مشکل در وب سایت شما هم هست اینکه اگر صفحه single رو همینجوری رفرش کنی خود به خود اضافه میشه بهش . خیلی بهش فکر کردم ولی نتونستم راه حلش و بفهمم . بر اساس ای پی هم نمی تونیم مشکل رو رفع کنیم چون احتمال داره یکی بیاد دوباره همون پست رو ببینه . چجوری میشه مشکل رفرش رو حل کرد ؟؟؟؟؟؟؟؟؟؟
ممنون میشم راهنمایی کنید .
خوب این طبیعی هست .
بستگی داره سیاست شما برای پیاده سازی قابلیت بازدید چی باشه .
اگه بخواید جلوی افزایش بازدید در رفرش رو بگیرید باید آیپی بازدید کننده،آیدی پست و زمان بازدید رو توی دیتابیس ثبت کنید .
هر بار که بازدید جدید انجام شد چک کنید که این آیپی مثلا در 24 ساعت اخیر این پست رو دیده یا نه . اگه دیده اضافه نشه و اگه ندیده بازدید رو اضافه بکنه .
سلام من میخواستم بپرسم چگونه میشه در قسمت افزودن نوشته قسمت تعداد بازدید گذاشت که خودت بازدید اولیه مطلبو را بزاری
سلام باید از افزون wp-post view استفاده کنید…
سلام، چرا توی فایل <?php باز شده ولی دیگه آخرش بسته نشده؟!؟
سلام برای فایل های php که محتوای html ندارن بهتره تگ پایانی رو نبندیم چون محتویات بعد از تگ پایانی ب صورت html شناسایی میشه.
باسلام این کفتید فایل را فراخوانی کنید. یعین چی من خودم یک قالب طراحی کرد اما ابزارک غیرفعال شده و این کدهای که شما هم داید داخل functions.phpقرار دادم اما داخل functions.php من فقد همین کد
هست بالایی این کد قراربدم یا پاین ممنون میشم که جواب بنده را بهید
شما کد های اصلی رو در فایل functions.php قرار بدین و بعدشم طبق آموزش قسمت روش استفاده میتونید از کد ها استفاده کنید.
واقعا عالیییییییییییییییییییییییییییییی بود.
واقعا دمت گرم داداش با این آموزشایی که گذاشتی ❓
من یه کم گیچ شدم . یه جا نوشته که فایل فانکشن رو باز کنید و کد های زیر رو به ترتیب اضافه کنیم . اما بعد از هر تابع نوشته در فایل single.php اضافه شوند . میشه دقیقا بگید تابع اول کجا و تابع دوم کجا اضفه بشه . تابع سوم رو که میدونم در فانکشن باید اضافه بشه
توابع اصلی رو در فایل functions.php قرار بدید و برای استفاده از تابع باید اونارو در فایل single.php فراخوانی کنید.
دوست عزیز
کدها رو تو فانکشن دات پی اچ پی ریختم ولی نمیدونم چطوری فراخوانیش بکنم مثلا من اینطوری فراخوانی میکنم و ارور میده
اینا رو تو single ریختم ولی ارور میده
تابع SetPostView رو داخل فایل single و تابع getPostView رو هم هرجایی خواستین تعدا بازدید مطلب رو نشون بدید.مثل حلقه اصلی سایت.
سلام ممنون عالی ومفیدبود
حلقه اصلی دقیقاکجاست؟
بستگی داره به طراح قالب و لی معمولا داخل فایل index.php قرار داره یا مثلا داخل فایل content.php
یه سوال دیگه خواستم بدونم چطورمیشه کلمه ادامه مطلب رو تو قالب بذارم چون بجای اون زده بیشتروقتی صفحه باز میشه
در قسمت حلقه اصلی وردپرس می تونید خودتون یه دکمه ایجاد کنید و مقدار href برای لینکش رو برابر the_permalink قرار بدید.
وقتی افزونه جلالی رو غیرفعال میکنم تاریخ میلادی میشه درست میشه بایگانی اما واسه شمسی مشکل دار باز صفحه خالی نشون میده
احتمال داره بعد از اینکه افزونه خاصی رو نصب کردین این مشکل پیش اومده باشه.باید ببینید مشکل از این مورد بوده یا نه.