یکی از مشکلاتی که برای وان اسکریپت هم چند باری پیش آمده و مطمئنم شما هم با آن بیگانه نیستید، انتشار ناخواسته ی مطلبی است که هنوز ویرایش و نوشتنش به پایان نرسیده. اگر از آن دسته مدیران سایتی باشید که اهل نوشتن مقالات و آموزش های طولانی و زمانبر باشید، حتما دست کم یکی دو باری برای شما هم پیش آمده که اشتباها در میان کار کردن روی نوشته ی خوشمزه تان، به صورت ناگهانی آن را منتشر کرده باشید در حالی که هدف شما صرفا ذخیره ی یک نسخه ی پیش نویس از آن بوده است. لازم هم نیست به این نکته اشاره کنم که انتشار ناخواسته ی یک مطلب در وبسایتی که به صورت اتوماتیک به کاربرانش خبرنامه ارسال میکند، چقدر میتواند بد و زشت باشد!
ولی خوب، خوشبختانه مثل تمامی مشکلات دیگر، این مشکل هم چاره ای دارد و ما هم امروز تصمیم داریم با هم به رفع این مشکل بپردازیم. وان اسکریپت ابتدا تصمیم داشت که برای حل این مشکل افزونه ی Publish Confirmation را به شما معرفی کند ولی خوب از آنجایی که این افزونه بیش از دو سال است که به روز رسانی نشده گفتیم شاید بهتر باشد که مثل همیشه خودمان دست به کار شویم و چند خطی کد بنویسیم و کنترل اوضاع را به دست بگیریم.
هدف این است کاری کنیم که از این به بعد وقتی در یک نوشته روی دکمه ی “انتشار” کلیک میشود، وردپرس گرامی از ما سوال کند که آیا واقعا مایل به انتشار نوشته هستیم یا خیر. برای انجام این کار کافی است کد زیر را در فایل functions.php پوسته ی خود قرار دهید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function onescript_delay_publish_on_feed($where) { global $wpdb; if ( is_feed() ) { $now = gmdate('Y-m-d H:i:s'); // value for wait; + device $wait = '20'; // integer $device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'onescript_delay_publish_on_feed'); |
و اما نتیجه ی کار میشود چیزی مشابه تصویر زیر: