WordPressのRSSに画像を設定しPinterestとIFTTT経由でTumblrに連携

Blog Admin
Blog Admin

Pinterestとtumblrにアイキャッチ画像を連携したいという話です。
それぞれの仕様に合わせて、WordPressのRSSにアイキャッチ画像を埋め込みます。

PHP

RSSにアイキャッチ画像

Pinterestは、サービス標準のRSS取り込み機能を使います。
tumblrは、IFTTTでRSSを監視して連携します。

WordPressの標準RSSにはアイキャッチ画像が含まれていません。
テーマエディターでPHPコードを追加します。
それぞれのサービスで要求仕様が異なるので、2種類の設定を追加しました。

試行錯誤の集大成です(が)

WordPress

試行錯誤でいろいろとやってきたので、遺産が残っています。
時系列は、上の方が新しいものです。

最初の対応がPinterestに受け入れられなかったため、深く考えずにPinterestを優先していました。
結果的には、2種類の設定を併存させてよかったのですね。

追加したコード

設定状況は以下のとおりです。

// RSSに画像要素を追加(for IFTTT - Tumblr)
function rss_post_thumbnail($content) {
  global $post;
  if(has_post_thumbnail($post->ID)) {
    $content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;
  }
  return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

// RSSに画像要素を追加(for Pinterest)
function insert_thumbnail_element_to_feed(){
  global $post;
  if ( !has_post_thumbnail( $post->ID ) ) return;
  $thumbnail_ID = get_post_thumbnail_id( $post->ID );
  $thumbnail = wp_get_attachment_image_src( $thumbnail_ID, 'full' );  
  $output = '<media:content xmlns:media="http://search.yahoo.com/mrss/" medium="image" type="image/jpeg"';
  $output .= ' url="'. $thumbnail[0] .'"';
  $output .= ' width="'. $thumbnail[1] .'"';
  $output .= ' height="'. $thumbnail[2] .'"';
  $output .= ' />';
  echo $output;
}
add_action('rss2_item', 'insert_thumbnail_element_to_feed');

テーマエディターでfunctions.phpに追加した部分です。
相変わらず詳細な仕様は分かっていないわけですがw

Pinterest用(media:content)

後半部分です。
12行目のコメント以降の部分です。

他のサイトで紹介されていたものを参考にしました。

当初からは、画像のサイズを変えました。
おそらく大きなものが好まれると思いますので。

IFTTT用(description内のimg)

前半部分です。
1行目のコメントから10行目までの部分です。

他のサイトで紹介されていたものを参考にしました。

divタグ内にimgを書くかたちにしています。
ただの好みの問題のような気もしておりますが、今回はこれでいきます。

itemの状況

実際に出力されているRSSは以下のとおりです。
インデントの見た目は整形しました。

<item>
    <title>RSSにimageタグを入れたい(Tumblr対応)</title>
    <link>https://wnkhs.net/2022/10/rss-image-31071/</link>
    <comments>https://wnkhs.net/2022/10/rss-image-31071/#respond</comments>
    <dc:creator><![CDATA[Blog Master]]></dc:creator>
    <pubDate>Tue, 04 Oct 2022 10:00:00 +0000</pubDate>
    <category><![CDATA[ブログ関連]]></category>
    <category><![CDATA[PHP]]></category>
    <category><![CDATA[RSS]]></category>
    <category><![CDATA[tumblr]]></category>
    <category><![CDATA[WordPress]]></category>
    <category><![CDATA[XML]]></category>
    <category><![CDATA[ブログ]]></category>
    <category><![CDATA[備忘録]]></category>
    <guid isPermaLink="false">https://wnkhs.net/?p=31071</guid>
    <description><![CDATA[<div><img width="1280" height="720" src="https://wnkhs.net/wp-content/uploads/2019/01/wordpress-001.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="WordPress" srcset="https://wnkhs.net/wp-content/uploads/2019/01/wordpress-001.jpg 1280w, https://wnkhs.net/wp-content/uploads/2019/01/wordpress-001-300x169.jpg 300w, https://wnkhs.net/wp-content/uploads/2019/01/wordpress-001-768x432.jpg 768w, https://wnkhs.net/wp-content/uploads/2019/01/wordpress-001-1024x576.jpg 1024w" sizes="(max-width: 1280px) 100vw, 1280px" /></div>WordPressが出力してくれているRSSに、画像の情報を載せたいという件です。まずは実験です。]]></description>
    <wfw:commentRss>https://wnkhs.net/2022/10/rss-image-31071/feed/</wfw:commentRss>
    <slash:comments>0</slash:comments>
    <media:content xmlns:media="http://search.yahoo.com/mrss/" medium="image" type="image/jpeg" url="https://wnkhs.net/wp-content/uploads/2019/01/wordpress-001.jpg" width="1280" height="720" />
</item>

16行目がIFTTT対応部分です。
19行目がPinterest対応部分です。

W3Cのチェックができたので

W3Cが提供しているRSSのチェックツールを通し、「valid RSS feed」(有効)とのお墨付きをいただきました。
重篤な書式違反がないということですね。

[Valid RSS]

バナーも使えます!
バナーをクリックすればチェック結果が表示されます。

description内にimgを入れてよいものなのか怪しかったのですが、ツールでは問題ないと判断されたわけです。
仕様書は読んでいませんが、ひとまずは問題なしと解釈しております。

ブログ的にはcanonicalを設定します

トップページ

備忘録です。

ブログとしては、過去の遺産ページにdanonicalタグを入れます。
必要に応じてこちらへのリンクも設置ですね。
自分も含めて、読む側が分かりやすいことがイチバンです。

この投稿を書いたのは・・・
Blog Admin

ガジェットが大好きで、ほぼ毎月何かしら調達しております。
無駄遣い扱いされたくないのと、何かの役に立つかと思い、記録を書くことにしたのでした。

お出かけのときには、スマホを複数台とタブレットとパソコンを持ち歩きます。
両手首にはスマートウォッチです。
こんなスタイルで生活している中での備忘録を書いています。

「Blog Admin」をフォローしてみる
ブログ関連
「Blog Admin」をフォローしてみる

ご意見やご感想などお聞かせください! コメント機能です。

タイトルとURLをコピーしました