خیلی وقتها توی سایتمون مطالبی میزاریم که دوره زمانی داره ، مثلا تو یه سایت خبری ، یه خبر موقت میخوایم بزاریم که بعد از چند ساعت حذف میشه ، یا میخوایم یه تخفیف رو بصورت موقت اطلاع رسانی کنیم ، خب نیاز هست بعد از چند روز این خبر موقت یا این تخفیف چند روزه رو از لیست مطالب سایتمون حذف کنیم ، خب اگه بخوایم بصورت دستی حذف رو انجام بدیم ممکنه زمان بر باشه.
من خودم با استفاده از کد زیر تونستم این مشکل را حل کنم ، با قرار دادن این قطعه کد در حلقه loop در فایل post.php زیر نوشته جدید در وردپرس بخش زمینه های دلخواه گزینه تاریخ انقضا اضافه میشه ، که میتونین اونجا یه تاریخ تنظیم کنین:
<?php if (have_posts()) : while (have_posts()) : the_post(); $expirationtime = gregdate("Y-m-d",get_post_custom_values('expiration')); if (is_array($expirationtime)) { $expirestring = implode($expirationtime); } $secondsbetween = strtotime($expirestring)-time(); if ( $secondsbetween > 0 ) { // For example… the_title(); the_excerpt(); } endwhile; endif; ?>
حالا برای پست هایی که میخواین بعد از مدت زمان خاص نمایش داده نشه از قسمت زمینه دلخواه به صورت زیر زمان مورد نظرتونو وارد کنین
نام زمینه دلخواه :expiration
مقدار زمینه دلخواه :
1392-05-10
البته با افزونه ها هم میشه اینکار کرد ، در لیست زیر نمونه ای از افزونه ها که چنین کاری رو برامون انجام میدن رو ارسال کردم :
http://wordpress.org/plugins/post-auto-expire-control/
http://wordpress.org/plugins/tieexpire-automated-post-expiry/
http://wordpress.org/plugins/post-expirator/
ولی تجربه شخصی من میگه تا میتونین از افزونه های کمتری استفاده کنین ، هم به سرعت سایت کمک کردین و هم از نظر امنیتی پیشنهاد نمیشه
امیدوارم مطلب براتون مفید باشه ، اگه سوالی داشتین تو بخش نظرات سوال کنین ، ما درخدمتیم