KH-WEBLOG TOP > WEBメモ > PHP > WordPressのRSSフィードからアイキャッチ付きの記事一覧を取得する方法:PHP

WordPressのRSSフィードからアイキャッチ付きの記事一覧を取得する方法:PHP

最終更新日:

PHPでWordPressのRSSフィードからアイキャッチ付きの記事一覧を取得する方法をご紹介します。

コーディング・WordPress化作業を代行します

アイキャッチを取得するための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から取得するコードですが、
フィード内のソースを確認し、適所取得したい情報を差し替える事で
フィードを取得できるブログからでしたら同じ方法で対応可能です。

コーディング・WordPress化作業を代行します

PHPのおすすめ参考書

楽天ブックス
¥3,740 (2024/04/24 17:42時点 | 楽天市場調べ)

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP RSS SEO WordPress アイキャッチ画像 アクセス解析 カスタムフィールド カテゴリー カラーミーショップ カート コメント ショートコード テンプレートタグ ドロップダウンメニュー パーマリンク フォーム フルスクリーン ブログカード プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク リンクカード レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 関連記事