אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » עיצוב של RSS בוורדפרס

עיצוב של RSS בוורדפרס

רן בר-זיק פברואר 28, 2021 7:07 am אין תגובות

אם אתם צריכים לבצע אינטגרציה/אוטומציה עם אתר וורדפרס לקריאה בלבד, כדאי להכיר את הדרך הפשוטה לשינוי RSS.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

למי שלא יודע, RSS (בעברית ר.ס.ס) זה ראשי תבות של Rich Site Summary ומדובר ב-xml פשוט. וורדפרס מייצר אותו באופן אוטומטי בכתובת feed/ וגם באתר הזה.

אם תסתכלו על הר.ס.ס של האתר הזה תוכלו להבין מייד מה קורה פה. מדובר בקובץ xml. כלומר עם <תגיות>פתוחות וסוגרות</תגיוות> עם פרטים שונים על הפוסטים. כמו description, או title.

אבל למה צריך את זה? בעבר היו המון אנשים (עכשיו הרבה פחות) שמשתמשים בקורא RSS כדי להתעדכן בתכנים חדשים. במקום להכנס לאתר היו פותחים את קורא הר.ס.ס שלהם ורואים מה התעדכן ומה לא. היום הרבה פחות תודות לרשתות החברתיות שהרסו את הכל.

אבל ר.ס.ס לא מת. למה לא? בגלל האינטגרציה. מה זאת אומרת? אם יש לכם אתר וורדפרס שמתממשק למערכות חיצוניות, הכי קל לעשות את זה עם הר.ס.ס. אם אתם עובדים עם מיילצ'ימפ למשל, או עם שירות השוואת מחירים או בוטים ושירותים שונים שמפרסמים אוטומטיים בכל עדכון חדש., עושים את זה לא מעט פעמים עם ה-ר.ס.ס. אם אתם בוני אתרים והלקוח רוצה לשנות את הר.ס.ס – זו הסיבה.

עם וורדפרס אפשר ליצור ממש בקלות פיד ר.ס.ס מותאם לכל אינטגרציה. מה זאת אומרת? אם למשל אני רוצה פיד ר.ס.ס למיילצ'ימפ, אני יכול ליצור אחד בכתובת https://internet-israel.com/feed/mwbfeed ואם אני רוצה פיד ר.ס.ס לשירות השוואת מחירים, אני יכול ליצור אחד בכתובת https://internet-israel.com/feed/compare.

למה זה טוב?

אני השתמשתי בזה במיילצ'ימפ. במשך שנים שיגע אותי שאין תמונה בפיד הר.ס.ס שלי שמתרגם למייל אוטומטי על עדכונים במיילצ'ימפ לקוראי האתר. ואז השתמשתי בפיד ר.ס.ס ספציפי למיילצ'ימפ שבתיאור שלו היה את התמונה.

איך עושים את זה?

כרגיל בוורדפרס, אפשר עם תוסף או ב-functions.php של התבנית (theme) העיצובית. באופן הכי פשוט. ראשית, הנה הקוד המלא – אפשר להדביק ולשנות. בהמשך אני מסביר. אבל מי שרוצה ת'כלס? זה הת'כלס:

feedurl זו הכתובת המותאמת אישית של הפיד הוא יהיה זמין ב yoursite.com/feed/feedurl – שימו לב שיש פה /feed/.

function add_mail_feed() {
    add_feed( 'feedurl', 'mail_feed' );
}
add_action( 'init', 'add_mail_feed' );
 
function mail_feed() {
    header( 'Content-Type: application/rss+xml' );
    echo get_template_part( 'rss' , 'webmail' );
}

הקובץ של ה-xml יהיה בשם rss-webmail.php והוא ימוקם בתיקית התבנית שלכם (אני מקווה שאתם עובדים עם תבנית בת).

<?php
/**
 * Template Name: Custom RSS Template - webmail-rss
 */
$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>
                        <guid isPermaLink="false"><?php the_guid(); ?></guid>
                        <description><![CDATA[<p><?php echo get_the_post_thumbnail( $post->ID, 'full', array( 'style' => 'max-width: 100%; height: auto;', 'height' => 'auto' ) ) ?></p><div style='direction:rtl; text-align: right;'><?php the_excerpt_rss() ?></div>]]></description>
                        <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
                        <?php rss_enclosure(); ?>
                        <?php do_action('rss2_item'); ?>
                </item>
        <?php endwhile; ?>
</channel>
</rss>

זה קובץ תבנית שאפשר להשתמש בו.

לממהרי הקופי&פייסט, זה מספיק. למי שלא עובד – גללו למטה לפתרון תקלות נפוצות.

אבל לפני זה הנה ההסבר המלא על כל חלק:

function add_mail_feed() {
    add_feed( 'feedurl', 'mail_feed' );
}
add_action( 'init', 'add_mail_feed' );
 

פה אני פשוט יוצר פונקציה שיוצרת /feed/feedurl. היא רצה בהתחלה של כל טעינה, יוצרת feedurl תחת feed שמה שמכיל אותו הוא mail_feed.

function mail_feed() {
    header( 'Content-Type: application/rss+xml' );
    echo get_template_part( 'rss' , 'webmail' );
}

זו הפונקציה שמחזירה את התוכן של הקובץ. אני שם header שמצהיר על כך שמדובר בקובץ rss-xml ומדפיס את הקובץ rss-webmail.php. זה הכל.

בעיות נפוצות שהיו לי:

⚠️ עושה את הכל, נכנס ל mysite.com/feed/feedurl ומקבל 404.

תכנסו אל הגדרות -> מבנה קישורים ותשמרו אותו שוב (איי שיט יו נוט). זה פשוט עושה פלאשינג לרשימת ה-urlים.

⚠️ משנה את קובץ rss-webmail.php וכלום לא משתנה!

הדפדפן שומר בקאש את דף הפיד, בצעו ריפרוש קשה (כרום/פיירפוקס: קונרטול F5 בחלונות, שיפט קומנד R במק) או שיפט ולחיצה על אייקון הריפרוש.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
וורדפרס

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד