質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

0回答

1935閲覧

RSS サムネイル表示されない

teruya_inomata

総合スコア14

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2020/09/02 08:14

まとめサイトを作成しています

WordPressで作成したサイトがいくつかあるので、RSSで
まとめサイトの方にWordPress複数サイトの最新記事が表示されるような仕様にしたいと考えております

投稿、日付などは取得できたのですが、サムネイル画像が取得できず困っています(現在は投稿の初めの画像がサムネイル代わりに表示されている状態です)

どなたかご教授していただけましたら助かります。お願いいたします

function.phpは下記のように記述しています

function.php

1//RSSアイキャッチ設定 2add_theme_support('post-thumbnails'); 3 4remove_filter('do_feed_rss2', 'do_feed_rss2', 10); 5function custom_feed_rss2(){ 6 $template_file = '/feed-rss2.php'; 7 load_template(get_template_directory() . $template_file); 8} 9add_action('do_feed_rss2', 'custom_feed_rss2', 10); 10

RSSの記述は下記のようになっています

RSSの記述

1<?php 2// RSS フィードを取得します。 3include_once(ABSPATH . WPINC . '/feed.php'); 4 5// 指定されたフィードから SimplePie のオブジェクトを取得します。 6//新着情報を取得したいフィードのURLをarray関数を使い、配列で指定しています。 7//配列にすることで、複数の RSS フィードを同時に取得して、1つにまとめて時系列に並べて表示することができます。 8$rss_arr = array( 'https://osakagourmet.jp/feed'); 9$rss = fetch_feed($rss_arr);if (!is_wp_error( $rss ) ) : 10 11$image = $item->image->url; // アイキャッチ 12$thumb = $item->thumb->url; // アイキャッチサムネイル 13$thumb = get_the_post_thumbnail($post->ID); 14$pattern= "/(?<=src=['|\"])[^'|\"]*?(?=['|\"])/i"; 15preg_match($pattern, $thumb, $thePath); 16$theSrc = $thePath[0]; 17 18 19// ちゃんとフィードが生成されているかをチェックします。 20// すべてのフィードから最新10件を出力します。 21//全部表示する場合は -1 22$maxitems = $rss->get_item_quantity(4); 23 24// 0件から始めて指定した件数までの配列を生成します。 25$rss_items = $rss->get_items(0, $maxitems); endif;?> 26 27<ul style="list-style: none; display: flex; padding: 0;"> 28<!-- 29取得できた RSS フィードが0件の時は「No items.」と表示します。 --> 30<?php if ($maxitems == 0) echo '<li>No items.</li>'; 31else 32 33// 取得できた RSS フィードが1件以上あった時は、以下のように RSS のデータを繰り返します。 34// 取得したい RSS のデータは、$itemにあるデータであれば、他のデータも表示させることができます。 35// 以下では、取得してきた外部の RSS フィードのサムネイル、日付、記事タイトルを表示して、その記事へのリンクを実現しています。 36foreach ( $rss_items as $item ) : ?> 37 <a class="relation" href='<?php echo $item->get_permalink(); ?>'> 38 <?php 39$first_img = ''; 40if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $matches ) ) { 41$first_img = $matches[1]; 42} 43?> 44<?php if ( !empty( $first_img ) ) : ?><img src="<?php echo esc_attr( $first_img ); ?>" alt="" style="width: 176px;height:92.141px;"><?php endif; ?> 45<?php echo $item->get_title(); ?></a> 46<?php endforeach; ?> 47</ul>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/05 13:35

$itemはどこから出て来たのか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問