2011-09-02 101 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. 进入自定义源设置和插上件