web-dev-qa-db-ja.com

おすすめの画像やカスタムフィールドをxmlフィードに追加する方法

私はすでにプラグインRSSマネージャ、RSSフィードへの注目画像の追加、およびRSSフィードでのおすすめ画像を試してみました。しかし、彼らがしなければならないのは、xmlフィードの<description>属性の中に画像を追加することだけです。

それには少なくとも2つの問題があります。

  • フィードを引っ張っているブログは、<description>を約300文字で切り捨てていますが、これは問題ありません。
  • フィードを引っ張っているブログは、HTMLタグを取り除きます。投稿の本文の内部に画像がある場合はそれが表示されるため、それらを削除する必要があります。そのため、投稿の先頭に2つの画像がある場合は、それらが表示され、注目の画像も表示されます。また、imgタグは300文字以内の文字を使い果たします。

だから私は追加された属性<featuredimage>または<thumbnail>またはそのようなものを使ってRSS xmlフィードを生成する必要があります。 <description>の中に埋め込まれていません。

私はプラグインを検索しましたが、この問題を解決するものを見つけることができません。前もって感謝します。

2
leonel

RSS2フィードはwp-includes/feed-rss2.phpファイルに生成されます。このファイルには、rss2_itemという名前のアクションフックがあります。このアクションフックを使用して、フィード内の各アイテムにタグを追加することができます。

rss2_itemタグを追加するためのものを含む、例を含む <image>に関するコーデックスの記事 があります。

<?php
add_action('rss2_item', 'add_my_rss_node');

function add_my_rss_node() {
    global $post;
    if(has_post_thumbnail($post->ID)):
        $thumbnail = get_attachment_link(get_post_thumbnail_id($post->ID));
        echo("<image>{$thumbnail}</image>");
    endif;
}
?>
3
Ben Miller

作業コード

add_action('rss2_item', 'custom_thumbnail_tag');

function custom_thumbnail_tag() {

    global $post;
    if(has_post_thumbnail($post->ID)):
        $thumbnail_ID = get_post_thumbnail_id( $post->ID );
        $thumbnail = wp_get_attachment_image_src($thumbnail_ID, 'thumbnail');
        echo("<thumbnail>{$thumbnail['0']}</thumbnail>");
    endif;

}
2
Bhupen

私はこれと同じことをやろうとしています。これまで見てきた2、3のリソース。

最初に有効なRSSの構文と構造を学びましょう。 RSS2.0タグの構文

Wordpressで隠しページを作成して独自のレイアウトを作成し、必要なすべてのフィールドと画像を呼び出す YoastカスタムRSSフィードtut

0
reidelliott