我想知道我是否可以提出Wordpress / RSS问题,我无法在这里找到答案,
尝试使用FeedWordpress插件作为RSS聚合器在Wordpress中通过RSS联合发布帖子,原始博客中的每个帖子都包含五个自定义字段,这些字段对其主题功能很重要(使用相同主题的原始和联合/接收博客)
原始RSS2源不包括这些自定义字段,除了一个外围设备,它是在默认rss源模板(WP rss_enclosure中的功能)中定义的。
这是用原始Feed写的,例如:
<enclosure url="http://www.samplevideourl.flv" length="18554755" type="video/x-flv" />
尝试添加修改rss2-feed.php模板的其他自定义字段,以便它们显示在当前RSS2 Feed中每个细分的末尾,现在它们包括在内:例如:
...
<ratings_average>0</ratings_average>
<views>5</views>
</item>
但是,如果我更新联合发布的帖子,或删除帖子并使用feedwordpress再次获取修改后的Feed,则这些帖子都不会显示在联合帖子中。
有没有办法包含这些自定义字段,以便它们被feedwordpress识别?
基本上需要联合与原始帖子相同的格式,包括其所有自定义字段。
非常感谢
卡洛斯
答案 0 :(得分: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";
}
}
这会将所有自定义字段名称和值添加到网站的主要Feed中。
请注意,对于具有多个值的自定义字段,需要进行修改,因为上述内容仅适用于单值字段,而不适用于数组。
所以,