RSSを使って別のWordPress、ブログの記事一覧を表示させる

wordpress

現在使っているWordpressに別のWordpress、またブログの記事をRSSで取得して表示させる方法です。
Wo会社の公式サイト、商品を紹介するブログ、社長個人の発信。運営しているうちに、気づけば発信の窓口が二つ、三つと増えていた。そんな経営者の方は少なくありません。

でも、それぞれが別々に動いていると、どれか一つを見た人に、他の発信は届きません。せっかく書いた記事が、お互いを行き来してもらえないまま埋もれていく。そう感じたことはないでしょうか。

一つのページに自分の発信をまとめて並べておけば、見に来た人が自然と他の記事にも回っていきます。この記事では、WordPressの標準機能を使って、別のサイトやブログの新着記事を、今のサイトに一覧表示する方法を、注意点とあわせてご紹介します。

1. この方法が最も安全に活きるのは「自分の発信をまとめるとき」

先に、いちばん大事な線引きをお伝えします。

この方法が最も安全に活きるのは、自分が運営している複数のサイトやブログを、一つの窓口にまとめて見せたいときです。中身はすべて自分のコンテンツですから、権利の問題も、検索エンジンから不当な扱いを受ける心配もありません。

「同じ記事が複数のサイトに出ると、Googleから罰を受けるのでは」と心配される方がいます。ですが、いわゆる「重複コンテンツのペナルティ(罰)」というものは存在しません。 Google自身も、検索結果を意図的に操作する目的がある場合を除いて、重複だけを理由にサイトを不利に扱うことはない、と説明しています。気をつけるのは罰ではなく、「同じ内容ならどのページを“正”として検索結果に出すか」という選ばれ方だけです。自分のサイト同士なら、ここを過度に恐れる必要はありません。

一方で、他人のサイトの記事を取り込む場合は、話が変わります。 タイトルにある「別のWordpress、ブログ」が第三者のサイトを指すなら、権利と規模(取り込む量)の問題が立ち上がります。詳しくは4番でお伝えします。

2. 実際のコード(中身はこれだけです)

表示させたい場所に、次のコードを記述します。一行ずつ覚える必要はありません。正しく一度だけ入っていれば動きます。

<?php
  // WordPressのRSS読み込み機能を有効にする
  include_once( ABSPATH . WPINC . '/feed.php' );

  // 読み込みたいRSSのURL(自分の別サイトなら複数並べてもOK)
  $rss_url = array(
    'https://example.com/feed/',
  );

  $rss = fetch_feed( $rss_url );
  if ( ! is_wp_error( $rss ) ) {
    $maxitems  = $rss->get_item_quantity( 4 );      // 表示する件数
    $rss_items = $rss->get_items( 0, $maxitems );

    echo '<ul>';
    foreach ( $rss_items as $item ) {

      // 記事内の最初の画像をサムネイルとして借りる
      $first_img = '';
      if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $m ) ) {
        $first_img = $m[1];
      }

      // 本文は先頭100文字だけを抜粋する(ここは短く保つ)
      $excerpt = mb_substr( strip_tags( $item->get_content() ), 0, 100 );

      echo '
      <li style="margin-bottom:20px;">
        <img src="' . esc_url( $first_img ) . '" width="100" height="100" alt="">
        <a href="' . esc_url( $item->get_permalink() ) . '" target="_blank" rel="noopener">' . esc_html( $item->get_title() ) . '</a>
        <p>' . esc_html( $item->get_date( 'Y.m.d' ) ) . '</p>
        <p>' . esc_html( $excerpt ) . '…</p>
      </li>';
    }
    echo '</ul>';
  }
?>

やっていることは、たったこれだけです。

  • 指定したRSSから、新着記事を4件読み込む
  • それぞれのタイトルと、元の記事へのリンクを出す
  • 日付と、本文の先頭100文字だけの抜粋を添える
  • 記事内の最初の画像を、サムネイルとして小さく表示する

$rss_url の部分に、読み込みたいRSSのURLを入れます。多くのWordPressでは「サイトのURL+ /feed/」がRSSのURLです。自分の複数サイトをまとめたいときは、ここにURLを並べて書くこともできます。

3. 「件数」と「抜粋の文字数」は、触っていい所と触らない方がいい所があります

get_item_quantity( 4 ) の数字を変えると、表示する記事の件数を増減できます。ここは自由に調整して構いません。

注意していただきたいのは、抜粋の文字数です。コードでは mb_substr( ..., 0, 100 ) として、本文の先頭100文字だけを取り出しています。これは意図があってのことです。

もしこの一行を外すと、他サイトの本文がまるごと表示されます。また 100 を大きな数字に変えれば、抜粋はいくらでも長くできます。ですが、他人の記事を対象にするとき、これはおすすめしません。

Googleは、「他サイトの配信(フィード)を、読者に独自の利点を与えないまま再生産すること」を、質の低い手口として明確に禁じています。全文をそのまま出すと、この一線に近づきます。結果として、そのページは「検索結果で上位に表示されない、または表示されないことがある」とされています(2025年に行われたスパム対策の更新でも、この点は改めて重点に挙げられました)。

短い抜粋+タイトル+出典リンクという今の形は、「続きは元の記事で読んでください」という案内であり、むしろGoogleが推奨する側の作法です。抜粋は短く保つ。 増やす場合でも、数十文字から100文字程度までを目安にしてください。

4. 他人のサイトを対象にするときの、3つの約束

自分のサイトではなく、他社・他人のサイトの記事を表示したい場合は、次の3つを守ってください。

  1. 相手の許可を確認する。 勝手に取り込まず、可能なら一言、承諾を得ます。
  2. 抜粋は短く、全文は転載しない。 3番でお伝えした通りです。
  3. 出典元へのリンクを必ず残す。 誰の記事かがわかり、元の記事へ辿れる状態を保ちます。

考え方はシンプルです。自分で作る、良いものを選んで紹介する、ただ寄せ集めるだけにしない。 他人の記事に自分の言葉での短い紹介を添えれば、それは「ただの寄せ集め」ではなく、あなたのサイトならではの価値になります。

5. サムネイル画像は「借り物」だと知っておく

このコードのサムネイルは、相手のサーバーにある画像をそのまま読み込んで表示しています(ホットリンクと呼びます)。

自分のサイト同士なら、画像も自分の管理下にあるので心配は要りません。ですが、他サイトの画像を借りている場合、相手が画像を消したり、場所を変えたり、外部からの読み込みを禁止すると、自分のサイトのサムネイルが壊れて表示されなくなります。 表示の速さも相手任せになります。できれば、他サイトの画像を直接読み込む形は避けるのが無難です。

コードでは、画像に alt=""(画像の説明文)を空で入れています。すぐ隣のリンクに記事タイトルが出るため、画像側はあえて空にして、読み上げ時の重複を避けています。こだわるなら取得した画像を自分のサーバーに保存して表示する方法もありますが、まずは「借り物は壊れることがある」と知っておくだけで十分です。

6. コードを書きたくないときは、標準機能という手もあります

ここまでお読みになって、「コードを触るのは少し不安だ」と感じた方もいるかもしれません。それで普通です。

このコードは、今のWordPressでもそのまま動きます(fetch_feed() は現役の標準機能です)。ただ、コードはテーマファイルという場所に書き込むため、慣れていないと不安な作業ではあります。

実は、現在のWordPressには、コードを書かずに近いことができる標準の「ブロック」も用意されています。同じサイトの新着を並べる「最新の投稿」ブロックや、外部のRSSのURLを貼り付けるだけで一覧を出せるブロックです。まずはこちらから試すのも、十分に良い選択です。

まとめ

  • 自分の複数サイトをまとめるぶんには、この方法は安全です。重複の罰を恐れる必要はありません。
  • 他人のサイトを対象にするときだけ、許可・短い抜粋・出典リンクの3つを守ってください。全文の転載はしません。
  • 迷うなら、まずはコード不要の標準ブロックから始めるのも一つの手です。

自分の発信を一つの窓口にまとめたい。でも、どこに何を置けば安全で、どこからが他人の権利に触れるのか——この線引きは、普段自分のサイトを見ているだけでは気づきにくいところです。外から一度診て、直すところと、触らない方がいいところだけをお伝えするのが、私の役割だと考えています。進め方に迷ったときの、相談相手になれれば幸いです。