یکی از بخش های مهم هر سایت، بدست آوردن آمار بازدید از مطالب منتشر شده و گاها نمایش آن است. این آمار را در وردپرس، می توان توسط افزونه هایی همچون 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 انجام میگیرد.
جهت آشنایی با توابع پیشفرض استفاده شده می توانید مستندات وردپرس را مطالعه کنید:
- Function Reference/add post meta
- Function Reference/update post meta
- Function Reference/delete post meta
- Function Reference/get post meta
و اما در آخرین مرحله، لازم است تا توابع بالا را فراخوانی و سپس چاپ کنیم. پس به صورت زیر عمل کنید:
مرحله اول:
جهت ثبت اطلاعات، تابع زیر را داخل حلقه (while) در فایل تک نوشته ها (single.php) قرار دهید.
<?php set_post_views (get_the_ID()); ?>
مرحله دوم:
پس از ثبت آمار، نوبت به چاپ اطلاعات میرسد.
بنابراین، از قطعه کد زیر در مکانی که میخواهید اطلاعات آماری نمایش داده شود، استفاده کنید.
<?php echo get_post_views (get_the_ID()); ?>
و به همین سادگی کار به اتمام میرسد…
منبع : دنیای وردپرس و برنامه نویسی – www.alimir.ir
سلام و درود
یک سایت سقف ویلا دارم میخوام براش امارگیر بزارم ممنون میشم بهم بگین چی براش بزارم که سرعت سایت رو کند نکنه
توسط سقف ویلا
با سلام یه سوال داشتم نمیدونستم کجا عنوان کنم از طریق سرچ به این صفحه رسیدم اگه راهنمایی کنید ممنون میشم :
من تو ساختار html دو سطر دارم با کلاس های متفاوت که هر سطر سه ستون داره به شکل زیر :
من میخوام 3 تا div اول که کلاس col-md-4 داره بیفته داخل div با کلاس row mt-lg و این کلاس بسته شه و بعد 3 تا div بعدی بازهم با کلاس col-md-4 این دفعه بیفته تو div بعدی که کلاس row mt-md mb-xl داره
اینارو به این شکل داخل حلقه قرار دادم :
حالا مشکلم اینه که هر 6 تا div با کلاس col-md-4 میفته داخل div با کلاس row mt-lg در صورتی که من میخوام سه تای اول بیفته تو div با کلاس row mt-lg و سه تا بعدی بیفته داخل div با کلاس row mt-md mb-x1
توسط سینا
سلام
آقای میرزایی لطفا جواب بدین
چطور میتونم مطالب رو بر حسب تعداد بازدید نشون بدم؟
لطفا کمک کنید…
توسط hassan
سلام حسن جان.
برای این کار باید یک حلقه مطالب (کوئری) بسازی و مقدار کلید orderby رو بر حسب متافیلد بازدیدها تنظیم کنی. مستندات بیشتر در لینک زیر:
http://tiny.alimir.ir/ZbS
توسط علی میرزائی
سلام
دوست عزیز میخاستم تابعی باش که فقط بر اسا ای پی باش ینی من الان این کدو گذاشتم هر رفرشی که میکنم یدونه میزنه ولی میخام هزار تا رفرش کردم فقط یدونه بزنه بر اتسا ای پی باش هر ای پی یدونه باس هر مطلب بش اگ کمکم کنید ممنونتون میشم
توسط a.m
سلام میشه قسمت حلقه while ش رو راسم بنویسید.کامل
متشکر
توسط ehsan
سلام. میتونید از مستندات اصلی وردپرس استفاده کنید:
http://tiny.alimir.ir/orY
توسط علی میرزائی