2016年6月18日

IFTTTからTwitter通知が失敗。アイキャッチ画像がRSSに含まれていない。解決法。

スポンサードリンク

 前回IFTTTを使い、WordPressブログを投稿したら
Twitterに自動ツイートするように設定しました。

これがエラーを起こしました。
フィードから画像URLを読込む事が出来るよう設定が必要。

IFTTTの初期設定にプラス、RSSに画像リンクを含める


 RSSフィードには、投稿の抜粋を表示させています。
これはWordPressの設定で変更できます。


WordPress管理画面→

表示設定→

RSS/Atom フィードでの各投稿の表示→

全文 / 抜粋のみ


で選びます。


 私は抜粋のみにしています。
コピーサイトに全文転載されたら困るので、その対策です。


 で、ここで問題が発生しました。

RSSに抜粋までしか読み込まないので、抜粋以下にある画像を、
IFTTTが見れなくなるんですね。

IFTTTがTwitterに自動ツイートしようとした際、
エラーが表示されました。

「 No valid image URL provided. 」

要するに画像URLが無いとの事。


 こんな時は、IFTTTが
画像抜きで適当にツイートしてくれて良いのに…。
そうもいかず。

なので設定をします。
WordPress側で設定していきます。


 IFTTTでアカウントを作っていない方、
レシピ作成法などは、前回の投稿をご覧下さい。

IFTTT(イフト)が便利。Feed更新したら自動ツイートする、等。好きなWEBサービスをトリガーするレシピ作成。

RSSにアイキャッチ画像を読み込むコードを追加する


 とっても詳しいサイトを発見しました。
こちら。

アイキャッチ画像をRSSで表示できるようにWordPressをちょっとカスタマイズしてみる。
http://siso-lab.net/wp-rss-ins-eye-catch/



 では設定していきましょう。
まずはWordPressの全データをバックアップしておきます。
FTPフォルダも全部です。

終わったら、

WordPress管理画面→

テーマの編集→

子テーマfunctions.php


以下のコードを追加します。


(このままコピーしないで下さい。UTF-8Nに変換して下さい。)


/* RSSフィードにアイキャッチ画像を追加 */
function rss_post_thumbnail($content){
  global $post;
  if(has_post_thumbnail($post->ID)) {
    $content = '<p>' . get_the_post_thumbnail($post->ID,'thumbnail') .
    '</p>' . $content;
  }
  else{
    $content = '<p>' . '<img src="' . get_stylesheet_directory_uri() . '/images/no-img.jpg" alt="no image" width="100" height="100"/>' .
    '</p>' . $content;
  }
  return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');



以上です。


 これは、RSSに画像を呼び出すためのコード。

RSS/Atom フィードでの各投稿の表示を抜粋のみにしている方に必要な設定。
試してませんが、全文表示にしている人は不要かもしれません。


 コード内容をざっくり解説します。


 投稿のアイキャッチ画像がある時は、それをサムネイル画像サイズで表示。
(私はRSS内に画像リンクがテキストで表示された)

画像のサイズは選べます。
通常サムネイル画像サイズで良さそうです。

get_the_post_thumbnail($post->ID,'thumbnail')

↑このコードを、
以下のコードに置き換えて変更する事もできます。

get_the_post_thumbnail($post->ID,'thumbnail') //サムネイルのサイズ
get_the_post_thumbnail($post->ID,'medium') //中サイズ
get_the_post_thumbnail($post->ID,'large') //大サイズ
get_the_post_thumbnail($post->ID,'full') //フルサイズ
get_the_post_thumbnail($post->ID,array(150,150)) //指定サイズ




 投稿のアイキャッチ画像が無い時は、
子テーマimagesフォルダ内にある

no-img.jpg

画像を表示させます。
この no-img.jpg
画像は、事前にフォルダ内に置いておきます。

トップページや新着投稿一覧などでもよく使いますね。

サイズは100×100pxにしていますが、
お好みで変更して下さい。

RSSはキャッシュデータが残るので、キャッシュクリアする


 さて、変更し終えて、
RSSを再度開いてF5更新して、チェックしてみても、変わっていない。

という事が続きました。


 その理由は、キャッシュデータが残っているから。
ブラウザのキャッシュクリアをしてから、再度RSSページを見てみましょう。

imgが読み込まれていればOKです。


 あとは、IFTTTからTwitterに自動ツイートされる事を確認しましょう。
これで完成です。


 Bloggerのこのブログでも、IFTTT連携設定してみた。





フー。やっと出来た。


 Bloggerではfunction.phpが無いので、
RSSにimgを読むコードを追加できません。

RSS全文表示にしている人は読み込めるでしょう。

私は冒頭文のみにしてあります。
ついでに、IFTTTのレシピでは「 Post a tweet 」にしました。


 なので、IFTTTで自動通知されたのが、
通常の共有のTwitterカードみたいな見た目ですね。

まぁこれでもOKです。


 こちらのブログはBloggerです。
WordPressの実際の表示を確認したい方は
ラビットしま子の「人生美容パラダイス」をご覧下さい。


 当ブログの情報は全ての方に応用できるとは限りません。
ご利用は自己責任です。当ブログ側はいかなる責任も負いません。

必ずデータは最新のバックアップを取っておいて下さい。


 WordPressを利用される場合はUTF-8Nの文字コードに必ず変換して下さい。

当ブログのコードをコピーしてphpファイル等に直で貼付けすると
ファイルやデータが破損します。
パソコンのメモ帳は不可です。

詳細はWordPressヘルプを参照下さい。


 ラビットしま子はサイト制作のプロではありません。
個別のカスタマイズについての相談は乗ってあげたいけど、乗れません。
(わからんから)


スポンサードリンク