RSSにmedia:contentタグを入れたかったため(Pinterestからのエラー通知対応)

Blog Admin
Blog Admin

Pinterestからエラー通知が来ていました。
RSSを読めませんでしたよ。とのことです。
画像の指定方法をなんちゃってにしていたことがバレましたね。。w

RSSのXMLを整理
画像情報をitem内に含める

WordPressのRSS内に画像を含める方法として、description内に無理やりimgを入れていました。
XMLのルール上はなしになっているもののようで、Pinterestからはそこを指摘されたのだと思います。

このたび、media:contentで追加するかたちに変更しました。
詳細が分かるのかと言われると、実はよく分かりません。
魔法の呪文のようなものだと考えております。知識はあとから付けていくスタイルです!

設定は適用済みです。

Pinterest連携でエラーに

当ブログは、更新情報をPinterestに連携しております。
日次の夜間処理です。(かっこよく書いてみました。)

wnkhs.net (wnkhs) - Profile | Pinterest
wnkhs.net | wnkhs.net 公式アカウントです。

Pinterestが夜中にRSSを読みに来てくれます。

かつてはIFTTTで繋いでいましたが、Pinterestの標準機能で対応できることと、IFTTTの無料版では制限が多いことを受け、現在のかたちになっています。
そのため、RSS連携に問題があれば本家から直接ご連絡をいただけるのです。

画像ありきのサービスですので、RSSに画像情報を含める必要があります。
あまり深く考えていなかったこともあり、HTML的な解決方法をとっていました。
つまり、imgタグの追加です。

あとから調べて分かったことですが、この方法は、W3Cのルールとは若干異なっているようです。
Pinterestの指摘もありましたので、PHPを直すことになりました。

今回反映したコード

詳しいことを理解している時間が見つからないので、まずはインターネットの集合知を利用させていただきます。
発見したコードを少しだけ変えて、以下を設定しております。

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, 'medium' );  
  $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');

先日追記した部分は削除して、上記と入替えです。

すでに動いているものを拝借するようなかたちですので、大掛かりな確認が不要で助かります。
ありがとうございます。

function.php を直接編集できない問題

ここで、さらなる問題が発生しました。
function.phpをテーマエディターで更新しようとしたところ、エラーメッセージが表示されたのです。

曰く、

致命的なエラーをチェックするためにサイトと通信できないため、PHP の変更は取り消されました。SFTP を使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。

とのこと。
安全装置ということなのでしょうか。
ただ手間なだけなのですが。。

WordPress

要するにSFTPでファイルを転送するようにということだと判断し、「WP File Manager」を有効化してから当該プラグインの機能でfunction.phpを入替えました。
ローカルで編集する方がなんとなくドキドキしますw
ファイルをダウンロードしたら、上記のとおりにテキストエディタ―で書き替えて、上書き保存後にアップロードです。
通信はSFTPではないですよね。FTPSでしょうか。

無事に反映できました。

グラフ

その後あらためてfunction.phpの編集を試したところ、こんどはエラーなく可能になっていました。
これは仕様どおりと理解しておきます。次回以降は普通に画面で修正ですね。

RSSの状況

itemタグ内にmedia:contentが追加されています。

<item>
    <title>無料でカフェの雰囲気を!(環境音ってやつね)</title>
    <link>https://wnkhs.net/2021/09/wnkhs-26912/</link>
    <comments>https://wnkhs.net/2021/09/wnkhs-26912/#respond</comments>
    <dc:creator><![CDATA[SunShine!]]></dc:creator>
    <pubDate>Thu, 16 Sep 2021 03:00:00 +0000</pubDate>
    <category><![CDATA[個別のアプリやサービス]]></category>
    <category><![CDATA[Webサービス]]></category>
    <category><![CDATA[Webツール]]></category>
    <category><![CDATA[環境音]]></category>
    <guid isPermaLink="false">https://wnkhs.net/?p=26912</guid>
    <description><![CDATA[無料で提供されてるカフェの環境音。ブラウザーで再生する。アプリぽくも自分で用意できるよ。]]></description>
    <wfw:commentRss>https://wnkhs.net/2021/09/wnkhs-26912/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/2017/11/s08003-300x169.jpg" width="300" height="169" />
</item>

これで問題ないでしょう。

問題のPinterestがどうなるか、継続確認中です。
要求どおりに対応しているので問題になっていないようには見えております。

アイコン

IFTTTでTumblrに連携している情報がPhotoでした。
Imageを取るはずなのですが、見つけられていないようです。
連携はリンクに変えたので問題ないと思われます。
ここはしばらく様子見です。

Twitter側はリンクだけなので問題ないでしょう。

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

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

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

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

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

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