ایجاد خوراک RSS سفارشی در وردپرس

خانه / وبلاگ / آموزش وردپرس / ایجاد خوراک RSS سفارشی در وردپرس
5 / 5
1
RSS-customize

ایجاد خوراک RSS سفارشی در وردپرس

5 / 5
1

وردپرس دارای یک قابلیت پیشفرض به نام خوراک RSS است. شما میتوانید در خوراک RSS وبسایت خود با استفاده از محتوای سفارشی خود تحول عظیمی ایجاد کنید. صفحه خوراک پیشفرض وردپرس ممکن است که کمی خسته کننده باشد، برای رفع این مشکل باید شما محتوای موجود در این صفحه را سفارشی سازی کنید. اگر میخواهید به ایجاد خوراک RSS سفارشی در وردپرس بپردازید این مطلب آموزش وردپرس را از دست ندهید.

سفارشی سازی خوراک RSS در وردپرس

تنها راه ایجاد تحول در خوراک استفاده از محتوای ویژه در آن است، شما میتوانید با سفارشی سازی محتوای درون خوراک RSS سایت خود، آن را به محیطی قابل تحمل تر تبدیل کنید، در این مطلب به شما نحوه استفاده از محتوای مناسب را در خوراک RSS آموزش خواهم داد. فقط دقت داشته باشید که باید قبل از شروع سفارشی سازی یک فایل پشتیبان کامل از سایت خود داشته باشید.

دقت داشته باشید که به هیچ وجه این مطلب را برای افراد مبتدی پیشنهاد نمیکنم، زیرا برای استفاده از این مطلب باید کمی با زبان php آشنایی داشته باشید تا به مشکل نخورید، اما در صورت لزوم میتوانید این کار را بر روی سیستم خود با استفاده از وردپرس local install انجام دهید.

در این مطلب به شما ایجاد خوراک با محتوای زیر را آموزش خواهم داد:

  • عنوان
  • لینک
  • زمان انتشار
  • نویسنده
  • خلاصه مطلب

شروع سفارشی سازی خوراک RSS

برای شروع باید یک خوراک RSS جدید در فایل توابع قالب وردپرس خود ایجاد کنید، برای انجام این کار کافیست تا کد زیر را در فایل Functions.php قرار دهید:


add_action('init', 'customRSS');
function customRSS(){
add_feed('feedname', 'customRSSFunc');
}


وقتی که خوراک جدید ایجاد شد. نیاز خواهید داشت تا تابع فراخوانی خوراک را نیز ایجاد کنید. میتوانید از کد زیر در فایل توابع برای انجام این کار استفاده کنید:


function customRSSFunc(){
get_template_part('rss', 'feedname');
}

سپس نیاز خواهید داشت تا قالب صفحه خوراک را نیز ایجاد کنید، با ایجاد این قالب، چیدمان محتوا در صفحه خوراک نیز مشخص خواهد شد. کد زیر این چیدمان را در صفحه خوراک ایجاد میکند و لیست محتوایی که در بالا گفته شد ایجاد خواهد شد. کد زیر را در یک فایل متنی با نام rss-feedname.php ذخیره کنید و آن را در آدرس قالب خود آپلود کنید.

<?php
/**
 * Template Name: Custom RSS Template - Feedname
 */
$postCount = 5; // The number of posts to show in the feed
$posts = query_posts('showposts=' . $postCount);
header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
<?php do_action('rss2_ns'); ?>>
<channel>
<title><?php bloginfo_rss('name'); ?> - Feed</title>
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
<language><?php echo get_option('rss_language'); ?></language>
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
<?php do_action('rss2_head'); ?>
<?php while(have_posts()) : the_post(); ?>
<item>
<title><?php the_title_rss(); ?></title>
<link><?php the_permalink_rss(); ?></link>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<dc:creator><?php the_author(); ?></dc:creator>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
<?php rss_enclosure(); ?>
<?php do_action('rss2_item'); ?>
</item>
<?php endwhile; ?>
</channel>
</rss>

همانطور که گفتم کد بالا چیدمان را در صفحه خوراک RSS ایجاد میکند. مقدار متغیر postCount مشخص میکند که چه تعداد پست در خوراک نمایش داده شود. تابع “the_excerpt_rss” خلاصه محتوای پست را نمایش خواهد داد و پست هایی که خلاصه نداشته باشند 120 کلمه از محتوای آن در خلاصه نمایش داده خواهد شد.

مطلب پیشنهادی  سفارش سازی صفحه ی ورود وردپرس

در ادامه کافیست وارد بخش تنظیمات»پیوند های یکتا شوید و بر روی “ذخیره تغییرات” کلیک کنید. اکنون میتوانید وارد صفحه خوراک خود شوید و آن را مشاهده کنید.

عیب یابی

اگر با ارور 404 موجه میشوید باید چک کنید که آدرس خوراک را درست وارد کرده اید یا خیر، دقت داشته باشید که نام خوراک را در تابع add_feed مشخص نموده ایم، در این مطلب نام خوراک را feedname قرار داده ایم. اگر باز هم مشکل وجود داشت باید دوباره وارد تنظیمات»پیوند های یکتا شوید و بر روی “ذخیره تغییرات” کلیک کنید. اگر باز هم با همان مشکل برخورد داشتید میتوانید کد زیر را پس از تابع “add_feed” قرار دهید:

global $wp_rewrite;
$wp_rewrite->flush_rules();

سپس دوباره صفحه را بارگیری کنید و کد بالا را از فایل توابع حذف کنید.

اگر با خطای <language /> مواجه شدید کافیست کد زیر را به فایل توابع اضافه کنید تا زبان خوراک به وردپرس معرفی شود:


function rssLanguage(){
update_option('rss_language', 'en');
}
add_action('admin_init', 'rssLanguage');

دقت داشته باشید که بجای rssLanguage در کد بالا باید کد زبان مورد نظر خود را وارد کنید. میتوانید این کار را با استفاده از دیتابیس نیز انجام دهید و در دیتابیس به دنبال گزینه rss_language بگردید. اگر از کد بالا استفاده نمودید پس از رفع مشکل باید کد را از فایل توابع حذف کنید.

در رابطه با خوراک RSS میتوانید از مطالب زیر نیز استفاده کنید:

موفق باشید…

اشتراک گذاری

  • دیدگاهتان فقط و فقط در رابطه با همین مطلب باشد.
  • لطفا از تایپ فینگلیش بپرهیزید. در غیر اینصورت دیدگاه شما بررسی نخواهد شد.
  • هدفتان از ارسال دیدگاه تبلیغ یا بک لینک نباشد. در غیر اینصورت دیدگاه حذف می شود.
  • به دیگر توهین و اهانت نکنید.

یک دیدگاه

  1. سعید

    سلام. چطوری میشه در فید یک دسته خاص فقط عنوان و عکس رو داشته باشیم.
    یعنی متن خوده مطلب نباشه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *