چگونه یک فید RSS برای وبسایت خود بسازیم؟ – از صفر تا صد


با این که فید RSS و فیدخوانها، آن مقدار که انتظار میرفت رواج نیافتهاند؛ اما آراساس همچنان برای بازدیدکنندگان سایتی که میخواهند از زمانهای بهروزرسانی وبسایت اطلاع داشته باشند، حائز اهمیت است. به علاوه به چند روش مختلف میتوان از فید های آراساس برای تبلیغ محتوای وبسایت در شبکههای اجتماعی استفاده کرد. در ابتدا نگاهی به چگونگی ایجاد یک فید آراساس از صفر برای یک وبسایت خواهیم داشت.
قالب فید آراساس: HEADER
فید آراساس یک وبسایت اساساً یک فایل XML است. اگر میخواهید این فایل XML به عنوان یک فید آراساس شناسایی شود باید از قالب خاصی در آن استفاده کنید. همه کاری که برای ایجاد یک فید آراساس نیاز دارید این است که اطلاعاتی را برای همه تگهای ضروری تعیین کنید. بدین منظور میتوانید از هر ویرایشگر متنی بهره بگیرید. Notepad در این زمینه عملکرد خوبی دارد؛ اما بهتر است ++Notepad را نیز امتحان کنید.
در ادامه تگهایی که برای ساخت فید آراساس باید در فایل XML خود بگنجانید را بررسی خواهیم کرد:
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel>
دو خط نخست چنان که میبینید نسخههای XML و RSS را بیان میکنند. خط سوم یک تگ «channel» باز میکند. این تگ همه اطلاعات در مورد کانال یا وبسایت شما را در خود نگهداری میکند. این سه خط را همانطور که هستند به فایل خود اضافه کنید. سپس کمی کد در مورد خود فید آمده است:
<title>MakeUseOf RSS Feed</title> <link>//www.makeuseof.com/</link> <description>Cool Websites, Software and Internet Tips</description> <lastBuildDate>Wed, July 4 2018</lastBuildDate>
این چند خط اطلاعاتی در مورد فید آراساس و وبسایت شما ارائه میکنند. تگ title حاوی هر گونه تیتری است که میخواهید در فید آراساس ارائه کنید. تگ link به وبسایت شما اشاره میکند و تگ description نیز شامل اطلاعات مختصری در مورد فید آراساس یا وبسایت شما است. تگ lastBuildDate آخرین زمانی که هر گونه تغییری در کانال یا وبسایت شما ایجاد شده را مشخص میکند. توجه کنید که استفاده از lastBuildDate اختیاری است. همه موارد فوق در فایل به نام هدر (HEADER) نامیده میشود.
قالب فید آراساس: محتوا (CONTENT)
در بخش بعدی محتوای واقعی فید آراساس عرضه میشوند که وقتی در یک فیدخوان نمایش یابند به صورت نهادهای مستقلی به نمایش در میآیند. هر نهاد درون جفت تگهای <item></item> قرار میگیرد که باید دستکم محتوای زیر را داشته باشد:
<item> <title>Entry Title</title> <link>URL Link to the entry</link> <guid>https://www.mysite.com/?p=584674</guid> <description>This is the description of the content...</description> <pubDate>Wed, July 4 2018</pubDate> </item>
در این مورد نیز تگ title به عنوان محتوای شما اشاره دارد، link نشانی کامل وب است که در آن از طریق هر آیتم میتوان به محتوای مربوطه در وبسایت دسترسی داشت.
تاریخ آراساس قالب خاصی دارد که میتوانید در کد فوق ببینید. زمان باید بر اساس زمان گرینویچ (GMT) باشد. برای کسب اطلاعات بیشتر در مورد قالبهای دیگر زمان و تاریخ میتوانید به بخش RFC 822 مراجعه کنید.
در نهایت تگ description محتوا یا توصیف واقعی مدخل را نگهداری میکند. به خاطر داشته باشید که موارد فوق برای هر مدخل در وبسایت تکرار میشوند. برای نمونه اگر یک بلاگ با پنج مقاله داشته باشید، یک آراساس کامل باید 5 تگ آیتم داشته باشد که 5 مدخل را میزبانی میکنند.
تگ guide یک شناساگر منحصر به فرد برای هر آیتم محسوب میشود. اکثر فیدخوانها و حتی کد خود شما که این فایل را ایجاد کرده است با استفاده از این تگ تشخیص میدهند که آیا فایل آراساس حاوی مطلب جدیدی هست یا نه.
تگ pubDate تاریخ انتشار محتوا درون کانال را تعیین میکند. در نمونه فوق این مقدار به محتوای آیتمهای منفرد اشاره دارد و هر آیتم منفرد باید تاریخ انتشار منحصر به فردی داشته باشد.
در ادامه باید تگهای باز شده channel و rss را با استفاده از </channel> و </rss> ببندید و فایل را ذخیره کنید. این فایل را به محل مناسبی مانند ریشه وبسایت روی وبسرور خود آپلود کنید و اینک توانستهاید یک فایل آراساس برای وبسایت خود بسازید.
اغلب فیدخوانهای مدرن میتوانند تصاویر اصلی مقاله را نمایش دهند. بدین منظور باید آن تصویر را با استفاده از تگ HTML به صورت <img> در توصیف محتوا گنجانده باشید.
اینک اگر کمی تأمل کنید متوجه میشوید که فایلی که ایجاد کردهاید، یک فایل ایستا است یعنی مدخلهای آن که درون تگهای مربوطه نوشتهاید همواره به همان شکل باقی میمانند و برای نشان دادن جدیدترین محتوای وبسایت شما تغییر نمییابند. بنابراین پیش از بررسی بیشتر، چند مسئله هستند که باید آنها را رفع کنیم.
فید آراساس خود را دینامیک بکنید
دینامیک ساختن فید آراساس نیازمند اندکی برنامهنویسی است. اگر در مورد مهارتهای برنامهنویسی خودتان مطمئن نیستید، پیشنهاد میکنیم به عنوان گزینه بهتر از CMS هایی مانند جوملا، دروپال و یا بهتر از همه وردپرس استفاده کنید. CMS ها چند افزونه برای فید های آراساس دارند و اغلب آنها کارکردهای آراساس را به طور کاملاً آماده در اختیار شما قرار میدهند. با این حال، از آنجا که شما مشغول مطالعه این راهنما هستید، تصور میکنیم که به دنبال ساختن یک راهحل شخصی هستید و از این رو در ادامه از رویکرد کدنویسی استفاده خواهیم کرد.
شما برای نوشتن فید دینامیک میتوانید از همان زبان برنامهنویسی بهره بگیرید که برای برنامهنویسی وبسایت خود استفاده کردهاید. مفهوم فید دینامیک صرف نظر از زبان برنامهنویسی مورد استفاده به طور کامل یکسان است. رویه کار چنین است که هنگام بهروزرسانی پایگاه داده وبسایت، جدیدترین موارد را در آیتمهای فید آراساس مینویسید. این همان پایگاه دادهای است که محتوای نوشتاری شما را نگهداری میکند و هر زمان که مطلبی را در بلاگ خود منتشر میکنید بهروزرسانی میشود. هر زمان که اسکریپت «بهروزرسانی آراساس» شما اجرا شود، این مقادیر را از پایگاه داده میخوانید و در آن فایل مینویسید.
همه کاری که باید انجام دهیم این است که مداخل مربوط به مطالب بلاگ را از پایگاه داده خوانده و آنها را در تگهای مناسب آراساس بنویسیم. در این نوشته این مراحل را صرفاً به صورت گذرا مورد اشاره قرار میدهیم، زیرا کد واقعی که مینویسید باید با همان زبانی باشد که وبسایت خود را نوشتهاید. قطعه کد زیر از وبسایت WebReference.com گرفته شده است و از این رو برای مشاهده جزییات کامل در زمان نوشتن کد میتوانید از توضیحهای مربوطه این وبسایت کمک بگیرید.
این تابع جزییات هدر را از پایگاه داده میگیرد و آنها را در فایل آراساس مینویسد:
private function getDetails() { $detailsTable = "webref_rss_details"; $this->dbConnect($detailsTable); $query = "SELECT * FROM ". $detailsTable; $result = mysql_db_query (DB_NAME, $query, LINK); while($row = mysql_fetch_array($result)) { $details = '<?xml version="1.0" encoding="ISO-8859-1" ?> <rss version="2.0"> <channel> <title>'. $row['title'] .'</title> <link>'. $row['link'] .'</link> <description>'. $row['description'] .'</description> <language>'. $row['language'] .'</language> <image> <title>'. $row['image_title'] .'</title> <url>'. $row['image_url'] .'</url> <link>'. $row['image_link'] .'</link> <width>'. $row['image_width'] .'</width> <height>'. $row['image_height'] .'</height> </image>'; } return $details; }
تابع زیر همه آیتمهای منفرد از پایگاه داده میگیرد و آنها را درون فایل آراساس مینویسد:
private function getItems() { $itemsTable = "webref_rss_items"; $this->dbConnect($itemsTable); $query = "SELECT * FROM ". $itemsTable; $result = mysql_db_query (DB_NAME, $query, LINK); $items = ''; while($row = mysql_fetch_array($result)) { $items .= '<item> <title>'. $row["title"] .'</title> <link>'. $row["link"] .'</link> <description><![CDATA['. $row["description"] .']]></description> </item>'; } $items .= '</channel> </rss>'; return $items; }
به طور کلی صرف نظر از این که در چه زبانی این کد را مینویسید، مراحل یا منطق فرایند به صورت زیر خواهد بود:
- اتصال به پایگاه دادهای که همه اطلاعات مورد نیاز ما را نگهداری میکند.
- اخذ اطلاعات مدخلهایی که میخواهید به فید آراساس اضافه کنید. معمولاً 10 مورد جدید خوانده میشوند.
- تولید بخش نخست فایل آراساس یعنی هدر.
- برای هر آیتم باید مراحل زیر صورت بگیرند:
- تولید یک آیتم <item>
- پر کردن تگها و محتوای مربوطه
- تولید تگ </item>.
- ایجاد بخش فوتر برای بستن فایل
فید آراساس خود را در معرض کشف قرار دهید
نکته دیگری که باید به خاطر بسپارید این است که فیدخوانها باید بتوانند فید آراساس تولید شده شما را بیابند. روشهای زیادی برای انجام این کار وجود دارند:
میتوانید یک فایل XML را به عنوان فید آراساس ایجاد کرده و آن را باز کنید، سپس آیتمها را در زمان انتشار هر مطلب یا هر زمان که برای بهروزرسانی فید زمانبندی کردهاید، به صورت دستی به آن اضافه کنید.
اگر از یک اسکریپت برای تولید فید آراساس هر زمان که درخواست میشود، استفاده میکنید میتوانید پیش از هر اطلاعات دیگری یک هدر Content-Type: application/xml را ارسال کنید.
میتوانید اسکریپت را به صورت یک فایل XML ذخیره کنید و از نرمافزار وبسرور خود بخواهید که با آن به صورت یک فایل اسکریپتینگ برخورد کند: برای مثال افزودن کد زیر به فایل htaccess. باعث میشود که وبسرور آپاچی با فایلهای XML به صورت PHP برخورد کند: AddType application/x-httpd-php.xml
به طور معمول مرورگر زمانی که نشانی url فید در آن وارد شود، تشخیص میدهد که با یک فید آراساس مواجه شده است و به جای نمایش محتوای اسکریپت، فید را نشان میدهد.
اغلب وبسایتهای مدرن وردپرسی یک فید آراساس دارند که به طور کاملاً آماده عرضه میشود. در چنین وبسایتهایی با افزودن عبارت «feed/» به انتهای آدرس URL میتوانید از محتوای فید آن وبسایت بازدید کنید. برای مثال برای مشاهده فید بلاگ فرادرس میتوانید از آدرس https://blog.faradars.org/feed استفاده کنید.
جایگزینهای سادهتر برای ایجاد فید آراساس
در طی سالهای اخیر توسعههای زیادی در زمینه فناوری آراساس ایجاد شده است. اینک دیگر هیچ کس نیاز ندارد که فیدهای آراساس خود را به صوت دستی ایجاد کند، چون خدمات بسیار مختلفی وجود دارند که میتوانند با گرفتن آدرس یک وبسایت، فید آراساس آن را به صورت دینامیک عرضه کنند. در ادامه فهرستی از سرویسهای آنلاینی را که این وظیفه را انجام میدهند ارائه کردهایم. توجه کنید که همه این سرویسها رایگان نیستند.
این وبسایت امکان تعریف کردن عناصر هر صفحه وب که قصد مانیتور کردن بهروزرسانی آنها را دارید، فراهم میکند. با استفاده از این سرویس میتوانید با کلیک روی چند جزء از یک صفحه، فید آراساس آن را ایجاد کنید.
این سرویس که توسط وبسایت FiveFilters.org ایجاد شده است، امکان وارد کردن آدرس صفحه و تعیین فیلترهایی برای خصوصیات کلاسها یا بخشهای مختلف صفحه ایجاد میکند.
این سرویس امکان گرفتن کد HTML از هر صفحه وب و ایجاد کدهایی برای فیلترها فراهم ساخته است. این کد آیتمهای جدید هر صفحه را شناسایی میکند. نسخه رایگان امکان ایجاد فیدهایی با آیتمهای محدود را فراهم میکند که هر شش ساعت یا بیشتر بهروزرسانی میشوند.
این خدمات مشابه FetchRSS است و امکان هایلایت کردن گرافیکی بخشهای مختلف صفحه وب برای نظارت بر بهروزرسانیها را فراهم ساخته است.
راهاندازی فید آراساس
تصور نادرستی در فضای وب وجود دارد که فناوری آراساس دیگر قدیمی شده است؛ اما این فناوری به دلایل مختلف همچنان جزو اجزای اصلی وب باقی مانده است. به همین دلیل اکثر سیستمهای CMS همچنان از RSS در نرمافزارهای خود استفاده میکنند. دلیل این بقا آن است که آراساس سادهترین روش موجود برای یک وبسایت است تا به علاقهمندان و مخاطبان خود امکان اطلاع از زمانهای بهروزرسانی مطالب بلاگ را فراهم سازد.
بدین ترتیب بازدیدکنندگان به بلاگ وفادار میمانند و دوباره به سایت مراجعه میکنند. بنابراین حتی در صورتی که بخش کوچکی از بازدیدکنندگان نیز علاقهمند باشند باید مطمئن شوید که جهت تأمین رضایت آنها از این فناوری بهره میگیرید. چون به هر حال کسب بازدیدکنندگان وفادار کار دشواری است.
اگر به این نوشته علاقهمند بودید، پیشنهاد میکنیم موارد زیر را نیز ملاحظه کنید:
- بهترین خبرخوانها (RSS Readers) برای ویندوز
- ابزارها و راهکارهای مدیریت وبسایتها
- فناوری آراساس (RSS)
- آموزش پروژه محور زبان برنامه نویسی بیسیک فور اندروید (B4A) – ساخت RSS Reader
- مجموعه آموزشهای طراحی و برنامه نویسی وب
==
سلام ممنون مقاله خوبی بود
ببخشید امکانش هست rss یه سایت رو ساخت که بخش هر ثانیه مطلب جدیدی از سایت منتشر شد نمایش بده و فید بخش هایی از مطلب را که میخواییم توی خروجی نشون بده ؟
مثلا برای یه سایت فروشگاهی که اختصاصی هستش صفحه ای که محصولات جدید در اون صفحه قرار میگیره رو به صورت لحظه ای خروجی بده و هر لحظه که محصول جدیدی اومد اونو نمایش بده و همچنین مثلا توضیحات محصول + عکس و قیمت و لینک صفحه رو توی خروجی بیاره.
آیا این شدنیه ؟
شما انجامش میدید ؟
هزینه انجام چنین چیزی چقدر هست؟
ممنون بابت مقاله . البته راهکار ساخت آنی rss بسیار کار اشتباهی هست چون اگر دیداس روی صفحه rss زده بشه ، سایت down میشه . بهتره به صورت فایل آماده ایجاد بشه و در اختیار موتور ها قرار بگیره