WordPressのRSSフィードからアイキャッチ付きの記事一覧を取得する方法:PHP
最終更新日:
PHPでWordPressのRSSフィードからアイキャッチ付きの記事一覧を取得する方法をご紹介します。
アイキャッチを取得するためのWordPress側での処理
WordPressの通常のフィードにはアイキャッチ情報が入っていませんので、
追加するために
functions.php内に
// Feedにアイキャッチ画像を表示する
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
↑こちらを追加します。
これでWordPress側の下準備は完了です。
一覧を表示するphpファイル側の処理
次に、WordPressの一覧を表示させたい箇所に
<ul>
<?php
//URL
$url = "ここにURL"; //記事一覧を持ってきたいサイトのfeedURLを記載
$context = stream_context_create(array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/json'), 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false,),));
$getTXT = file_get_contents($url, false, $context);
$getRss = simplexml_load_string($getTXT);
foreach ($getRss->channel->item as $item) {
$i++;
if ($i == 6) break;//何件まで表示するか
$date = date("Y.n.j", strtotime($item->pubDate));//投稿日
$link = $item->link; //記事のリンク
$title = $item->title; //記事のタイトル
$category = $item->category; //記事のカテゴリー
$e_content = $item->children("content", true);
$e_encoded = (string) $e_content->encoded;
$output = preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]+\>/i', $e_encoded, $matches);
$first_img = $matches[1]; //記事中の最初の画像
$description = $item->description; //記事の概要
$description1 = strip_tags($description);
$limit = 30; //概要の文字数制限
if(mb_strlen($description1) > $limit) {
$description1 = mb_substr($description1,0,$limit);
}
?>
<!-- ここからコンテンツ -->
<li>
<p class="day"><span><?= $date ?></span></p>
<div class="pic"><img src="<?= $first_img ?>" alt="<?= $title ?>"></div>
<div class="txt">
<h3><a href="<?= $link ?>"><?= $title ?></a></h3>
<p><?= $description1 ?>…</p>
<div class="cat"><?= $category ?></div>
</div>
</li>
<?php } ?>
のように記述することで一覧が表示されます。
WordPressのRSSフィードURLの確認方法
WordPressには以下のようないろいろなフィードURLがありますが、
http://example.com/?feed=rss2 http://example.com/feed/ http://example.com/feed/rss/ http://example.com/feed/rss2/ http://example.com/feed/rdf/ http://example.com/feed/atom/
迷ったら?feed=rss2こちらのURLを使用すれば大丈夫かと思います。
今回はWordPressのRSSから取得するコードですが、
フィード内のソースを確認し、適所取得したい情報を差し替える事で
フィードを取得できるブログからでしたら同じ方法で対応可能です。



