1 月01
如何在WordPress自訂RSS摘要內容並顯示圖片

image當我們在浩瀚的網路中衝浪時,碰上有興趣或是不錯的網站時,應該經常會利用所謂的RSS或是FeedBurner所提供的電子報訂閱方式來守株待兔,守在家裡等著訂閱網站發表他們的大作。

如果你是的部落客,內容產生者,不知道你有沒有發現到一件有趣的事,就是這些RSS摘要,有的內容很簡單,可能就只有100個字左右,根本還沒搞清楚狀況,內容就被截斷了,這時候要不要更進一步到原網站瀏覽其文章全文,可能就只能用其標題及少得可憐的內容來判斷;可是有的RSS內容卻是一字不差的把整篇文章完全節錄,也就是說在RSS上就可以看完全文,根本就不必再回到原始網站,相對於內容經營者來說,這麼一來就少了網站的流量,二來過多的內容形成了不必要的網路資源浪費。

以上兩種方式過與不及都不好。工作熊看過最好的RSS內容其實是長這樣的:

  1. 依據文章內設定的【繼續閱讀】符號來截斷。這樣子可以讓內容產生者自行決定RSS的截斷點。
  2. 可以顯示文章圖片。我們常說有時候「一張圖勝過千言萬語」,尤其是對那些寫遊記或是食記的部落客,一張可以代表文章的照片經常可以引起讀者的興趣。

目前工作熊只找到使用 WordPress 架站的方法,其他的部落格平台就自求多福了。變更的方法必須使用FPT軟體修改php程式碼。修改程式碼之前建議先備份,以免更改方法有誤造成系統問題,另外如果軟體升級後,有時候可能會造成原來修改的程式碼遺失,需要重新再做一次修改,程式碼修改方法如下(工作熊試過三個網站都可以成功,原本有一個一直有問題,後來在FeedBurner上面做了一些設定就好了,不過當工作熊把設定又調回來的,問題也沒重複發生,所以就在看看囉!):

1. 更改feed.php程式碼

先使用FTP軟體找到wp-includes/feed.php程式,找到【get_the_content_feed】關鍵字。

function get_the_content_feed($feed_type = null) {
     if ( !$feed_type )
         $feed_type = get_default_feed();
     $content = apply_filters(‘the_content’, get_the_content());
     $content = str_replace(‘]]>’, ‘]]>’, $content);
     return apply_filters(‘the_content_feed’, $content, $feed_type);
}

插入下面兩行紅色的程式碼於指定位置,完成後儲存檔案。

function get_the_content_feed($feed_type = null) {
     if ( !$feed_type )
         $feed_type = get_default_feed();
        global $more;
         $more = 0;

     $content = apply_filters(‘the_content’, get_the_content());
     $content = str_replace(‘]]>’, ‘]]>’, $content);
     return apply_filters(‘the_content_feed’, $content, $feed_type);
}

【$more = 0;】表示「要」顯示繼續閱讀符號。
【$more =-1;】表示「不」顯示繼續閱讀符號。

2. 更改feed-rss2.php程式碼

接著一樣使用FTP軟體找到wp-includes/feed-rss2.php的程式檔案,並找到【<get_option(‘rss_use_excerpt’)】關鍵字。其實WordPress下有好多的rss程式,但一般FeedBurner多會幫我們轉成RSS2.0的格式。

<?php if (get_option(‘rss_use_excerpt’)) : ?>
         <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
<?php else : ?>

修改其後面的程式碼,將原本的【the_excerpt_rss();】修改為【the_content_feed(‘rss2’);】,完成後儲存檔案就可以了。(注意:只要修改指定的【the_excerpt_rss();】就可以了)

<?php if (get_option(‘rss_use_excerpt’)) : ?>
<description><![CDATA[<?php the_content_feed(‘rss2’); ?>]]></description>
<?php else : ?>

3.  程式碼修改前後的RSS比較。

程式碼修改「前」。
下面這個截圖使用IE直接讀取RSS的內容,可以看到摘要都只有一行,每個摘要應該都不超過50個字。這樣的摘要有時候很難讓人決定要不要繼續閱讀。

RSS顯示圖片02

程式碼修改「後」。
下面的截圖也是使用IE直接讀取RSS的內容,現在可以看到摘要的內容有圖片顯示,而且每個摘要擷取都點都在【繼續閱讀】的位置。

RSS顯示圖片03

4. 重抓 FeedBurner 的RSS內容摘要

雖然部落格上的的RSS摘要已經更改過來了,但FeedBurner上的摘要卻已經抓好舊的資料了,建議到FeedBurner上設定重抓摘要,這樣才會讓我們的所有摘要一致。

設定FeedBurner重抓摘要的方法如下:

  1. 登入FeedBurner。
  2. 點擊【疑難排解(Troubleshoot)】的水平選單。
  3. 將螢幕往下拉,在2/3的地方看到一個【Resync Now】的按鈕,按下去就可以了。
  4. 再點擊【內容優化】的水平選單。左側邊欄的第一個選項【您的摘要】,就可以看到更新厚的內容了。

5. 疑難排除

  1. 當修改後網站有問題時,請檢查看看是否有打錯字,或是「半字形」打成了「全字形」的問題。
  2. 如果摘要內容無法顯示【繼續閱讀】的連結,建議到FeedBurner的【內容優化】水平選單,關閉【摘要內容總結工具】。
  3. 如果內容一直無法顯示,可以嘗試設定FeedBurner,在【內容優化】水平選單下設定【摘要格式轉換器】為【RSS2.0】。
  4. 有時候網站或是個人電腦設有快取,可能會無法即時反應修改後的內容,請重複按<F5>重整螢幕,或是等一下再重新試一次看看。建議先使用IE來查看部落格中的RSS內容正確否,確定正確了再來更改FeedBurner的設定,因為FeedBurner有快取。
  5. 如果還有其他問題,請先參考這篇文章【WordPress的RSS讀取錯誤問題解決

延伸閱讀:
為部落格文章加上色彩繽紛的蠟筆重點底線
添加日曆圖示到WordPress部落格
如何啟用wordpress的維護模式,暫停網站服務

在〈“如何在WordPress自訂RSS摘要內容並顯示圖片”〉中有 4 則留言

  1. SHERRY表示:

    請問我已經改原始碼
    不過用IE看RSS還是都是全文顯示
    http://baby.homin.com.tw/?feed=rss2

    是不是feed-rss2.php下面也要改

    <![CDATA[]]>

    <![CDATA[]]>

    0 ) : ?>
    <![CDATA[]]>

  2. 黎盈表示:

    請問我已經改原始碼
    不過用IE看RSS沒有出現閱讀全文的標籤
    反而出現 UTF8_EXCERPT_HAS_MORE

    請問怎麼修改?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *