در آموزش امروز همانطور که از عنوان آن هم مشخص است تصمیم داریم کاری کنیم که مطالبی که در سایت منتشر میشوند، با کمی تاخیر در فید rss وردپرس به نمایش در بیایند و به صورت آنی از طریق فید در دسترس نباشند. اگر در ادامه این آموزش با ما همراه شوید، ابتدا به همراه هم بررسی میکنیم که اصلا چرا ممکن است به انجام چنین کاری نیاز داشته باشیم و سپس روش پیدا سازی چنین حالتی را با هم مرور میکنیم.
تاخیر نمایش مطلب در فید RSS چه کاربردی دارد؟
در اینجا دو مثال از کاربرد این عمل برای شما خواهیم زد. حالت اول حالتی است که شاید برای خیلی از ما پیش آمده باشد. مطلبی را در سایت منتشر میکنیم و پس از انتشار علیرقم به خرج دادن کافی در بازخوانی مطلب متوجه میشویم که اشتباهات تایپی یا گاها اشتباهاتی در جمله بندی مطلب به چشم میخورد. در چنین حالتی حتی اگر شما سریعا اشکالات موجود در مطلب را اصلاح کنید، باز هم مطلب در همان زمان کوتاه در اختیار مشترکین RSS شما قرار گرفته و حتی اگر خبرنامه تنظیم شده بر مبنای RSS داشته باشید، نسخه ای از مطلب که دارای اشکال بوده، از طریق ایمیل برای مشترکین شما هم ارسال شده و حالا تقریبا برای ویرایش مطلب دیر است! در اینجا اگر نمایش مطلب در فید سایتتان را به تاخیر انداخته بودید، فرصت کافی برای اصلاح اشتباهات خود را داشتید و شاید هیچ کس هم از این اشتباهات با خبر نمیشد.
و اما حالت دوم این است که شم سایتی دارید که تازه کار است و هنوز با سرعت پایینی در موتور های جستجو ایندکس میشود و طبعا authority پایینی هم دارد. این روزها متاسفانه بازار خبرخوان ها هم که بسیار داغ است. اگر فرض کنیم که چند سایت خبرخوان، مطلب شما را از طریق RSS سایت شما دریافت کرده و به سرعت در سایت خود منتشر کنند، با فرض اینکه این سایت ها authority بیشتری نسبت به سایت تازه کار شما داشته باشند، ممکن است زحمات شما به نام آنها تمام شود و تلاش های شما بیهوده بماند. در این حالت نمایش مطلب در فید با تاخیر، میتواند به وبسایت شما فرصت کافی جهت ایندکس شدن مطلب جدید در موتور های جستجو را بدهید و نگذارد که زحمات شما به هدر برود.
احتمالا خودتان همین حالا دارید به کاربرد های دیگری هم فکر میکنید … ولی خوب با اشاره به همین دو مورد اجازه بدهید به سراغ اصل ماجرا برویم و ببینیم که چطور میتوان نمایش مطالب را در فید به تاخیر انداخت.
آموزش به تاخیر انداختن نمایش مطالب سایت در فید
انجام این کار ساده است، اما ابتدا باید تصمیم بگیرید که میخواهید کد زیر را در فایل functions.php خود قرار دهید یا افزونه site-specific ای که قبلا به همراه هم ایجاد کرده بودیم. بعد از اینکه تصمیمتان را گرفتید، فایل مورد نظر را برای ویرایش باز کرده و کد زیر را به آن اضافه کنید:
function scriptha_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', 'scriptha_delay_publish_on_feed');
در کد بالا ابتدا در خط 6 زمان فعلی را ثبت کرده ایم. سپس در خطوط 9 و 10 مدت زمان تاخیر مورد نیازمان را تنظیم کرده ایم و سپس در خط 12 کاری کرده ایم که تنها نوشته هایی که فاصله زمان انتشار آنها تا زمان فعلی بیش از تاخیر مورد نیاز ما باشد در محتوای فید به نمایش در بیایند.
ما در اینجا تاخیر را بر روی 20 دقیقه تنظیم کرده ایم. (خط 9) شما میتوانید طول این زمان را بر اساس نیاز خود تغییر دهید تا به نتایج دلخواه خود دست پیدا کنید. توجه داشته باشید که طولانی کردن بیش از حد این زمان ممکن است برای مشترکین RSS شما ناخوشایند باشد بنابراین در تنظیم تاخیر، این مطلب را هم به یاد داشته باشید تا احیانا موجب از دست دادن مشترکین فید سایتتان نشود.
ارسال دیدگاه