【问题标题】:Syndicating custom fields in Wordpress via RSS通过 RSS 在 Wordpress 中联合自定义字段
【发布时间】:2011-11-09 04:34:32
【问题描述】:

我想知道我是否可以问一个在这里找不到答案的 Wordpress / 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 识别它们?

基本上需要联合发布与原始帖子格式相同的帖子,包括其所有自定义字段。

非常感谢

卡洛斯

【问题讨论】:

    标签: wordpress rss custom-fields rss2


    【解决方案1】:

    有一个帖子涵盖了这个: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. 在您的主站点(您从中进行联合的地方)添加上述功能。
    2. 在 Slave 站点(您要联合到的地方),假设您安装了 FeedWordPress,请转到“SYNDICATION” ->
    3. 点击 RSS 提要的名称
    4. 转到自定义 Feed 设置并插入片段

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多