2011-09-02 102 views
1

聯合發佈的自定義字段中的WordPress我不知道如果我可以問一個WordPress/RSS問題,我便無法找到在這裏的答案,通過RSS

使用FeedWordpress插件作爲一個試圖通過RSS辛迪加職位的WordPress RSS聚合器,原始博客中的每篇文章都包含五個對其主題功能非常重要的自定義字段(使用相同主題的原創和辛迪加/接收博客)。

原始RSS2訂閱源不包括除默認rss訂閱源模板(WP rss_enclosure中的函數)中定義的一個以外的自定義字段。

這是寫在原始進料,例如:

<enclosure url="http://www.samplevideourl.flv" length="18554755" type="video/x-flv" /> 

試過因此可以顯示在每個分段中的電流結束時添加修改RSS2-feed.php模板自定義字段的其餘部分RSS2飼料,現在它們被包含,例如:

... 
<ratings_average>0</ratings_average> 
<views>5</views> 
</item> 

但是,如果我更新銀團的帖子,或刪除的文章,並與feedwordpress再次取的改性原料,沒有這些節目在辛迪加職位。

有沒有方法可以包含這些自定義字段,以便它們被feedwordpress識別?

基本上需要將包含所有自定義字段的原始文檔的格式與原文相同。

非常感謝

卡洛斯

回答

0

有覆蓋此線程:https://wordpress.stackexchange.com/questions/3801/add-custom-fields-to-custom-post-type-rss

我已經凝結的答案有反映後來的改進(感謝MikeSchinkel,prettyboymp和Acts7)。

一下添加到主題functions.php:

/* IN ORDER TO VALIDATE you must add namespace */ 
add_action('rss2_ns', 'my_rss2_ns'); 
function my_rss2_ns(){ 
    echo 'xmlns:mycustomfields="'. get_bloginfo('wpurl').'"'."\n"; 
} 

add_action('rss2_item', 'yoursite_rss2_item'); 
function yoursite_rss2_item() { 
    if (get_post_type()=='my_custom_post_type') { 
    $fields = array('field1', 'field2', 'field3'); 
    $post_id = get_the_ID(); 
    foreach($fields as $field) 
     if ($value = get_post_meta($post_id,$field,true)) 
     echo "<mycustomfields:{$field}>{$value}</mycustomfields:{$field}>\n"; 
    } 
} 

這將所有的自定義字段名稱和值添加到該網站的主要飼料。

請注意,對於具有多個值的自定義字段,需要進行修改,因爲上述操作僅適用於單值字段,而不適用於數組。

所以,

  1. 在你的主站點(你在哪裏辛迪加FROM)添加上述功能。
  2. 在從站點(你在哪裏聯合發佈TO),假設你安裝FeedWordPress,進入「聚合新聞服務」 - 對RSS提要的名稱>
  3. 點擊
  4. 進入自定義源設置和插上件