Written by Kasumi

【簡単】ワードプレスのRSSフィードを取得して、外部サイトに記事一覧を表示する方法

あるワードプレスの記事一覧を外部サイトで表示したい!

プラグイン等は使いたくない。。

上記のような疑問に回答します。

本記事では、ワードプレスのRSSフィードを取得して、外部サイトに表示する方法について解説します。

URL末尾に/feed/を入れてRSS情報を確認

https://×××.com/feed/

まずは記事一覧を持ってきたいワードプレスサイトのURL+末尾に/feed/を入れて、ブラウザで確認しましょう!

ワードプレスにはデフォルトでRSSフィードを発信する機能が備わっています。

ソースがバーっとでましたでしょうか?

その中に持ってきたい記事一覧のテキストなどがあればとりあえずOKです。

外部サイトの任意の箇所に以下ソースをコピペ

<?php
//URL
$url = "https://×××.com/feed"; //記事一覧を持ってきたいサイトの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]; //記事中の最初の画像
?>
  <!-- ここからコンテンツ -->
  <article class="list">
    <a href="<?= $link ?>">
      <div class="common_img">
        <img src="<?= $first_img ?>" alt="<?= $title ?>">
      </div>
      <div class="common_content">
        <p class="common_title"><?= $title ?></p>
        <p class="common_category"><?= $category ?></p>
      </div>
    </a>
  </article>
<?php } ?>

上記ソースを記事一覧を持ってくるサイトの任意の位置(表示したいPHPテンプレートファイルの任意の位置)にコピペしましょう。

持ってきたソースの下記部分を任意の値に修正してください。

$url = "https://×××.com/feed"; //記事一覧を持ってきたいサイトのfeedURLを記載

URLを、記事一覧を持ってきたいワードプレスサイトのものに変更

  if ($i == 6) break;//何件まで表示するか

何件表示するか、数値を変更(参考ソースは6件)

以上で外部ワードプレスサイトの記事一覧が表示されているか、一旦確認してみましょう!

記事一覧を装飾

  <!-- ここからコンテンツ -->
  <article class="list">
    <a href="<?= $link ?>">
      <div class="common_img">
        <img src="<?= $first_img ?>" alt="<?= $title ?>">
      </div>
      <div class="common_content">
        <p class="common_title"><?= $title ?></p>
        <p class="common_category"><?= $category ?></p>
      </div>
    </a>
  </article>

あとはここからコンテンツのコメントアウト以下を任意のソースに入れ替えて、自分好みに装飾しましょう。

以下変数を出力すると、記事一覧の情報がでます。

$date:投稿日
$link:記事のリンク
$title:記事のタイトル
$category:記事のカテゴリー
first_img:記事中の最初の画像URL

以上で完成です。

まとめ

外部ワードプレスサイトの記事一覧を持ってきたい、という案件は結構あります。

アイフレームでも対処できますが、結構使いづらいです。。

上記ソースを流用・自分好みにカスタマイズしてぜひ使ってください。

目次

関連記事

プログラミング

URLにパラメータが付与されてる場合のアンカーリンク作成方法

2022.08.02
358
WordPress プログラミング

【簡単】Custom Post Type UI で カスタム投稿タイプのアーカイブページに親ページ(任意の固定ページ)を設定する方法

更新日:2022.04.13
2007
WordPress

WordPressで使われてるエディタ(ブロックorクラシック)によってif文で条件分岐する方法

2022.10.30
86
WordPress プログラミング

【簡単】WordPressでテーマ内のファイルURLを取得する方法

2022.04.13
272