WordPressでWebサイトをつくる時、別のWordPressサイトの投稿を読み込んで表示させたい場合の方法をご紹介します。
たとえば社内で複数のブログを運用していて、新たにそれらをまとめて表示させるWebサイトをつくる場合に役立ちます。
実際は、次のようなコードをテンプレートファイルの表示させたい位置に利用します。
1 | <?php include_once( ABSPATH . WPINC . '/feed.php' ); $feeduri = '取得するRSSのURL'; $rss = fetch_feed($feeduri); if (!is_wp_error($rss)) { $maxitems = $rss->get_item_quantity(3); $rss_items = $rss->get_items( 0, $maxitems ); } foreach ( $rss_items as $item ) : ?> <!-- 記事へのリンクを表示 --> <a href="<?php echo $item->get_permalink(); ?>"> <!-- 記事の最初の画像を表示 --> <?php $first_img = ''; if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $matches ) ) { $first_img = $matches[1]; } ?> <img src="<?php echo esc_attr( $first_img ); ?>" alt=""> <!-- 記事タイトルを表示 --> <?php $title = $item->get_title(); if(mb_strlen( $title ) > 40 ): ?> <p class="title"><?php echo mb_substr( $title,0,40 );?>...</p> <?php else : ?> <p class="title"><?php echo $title ;?></p> <?php endif; ?> <!-- 投稿日を表示 --> <?php $item_date = $item->get_date(); $date = date('Y/m/d',strtotime( $item_date )); ?> <p class="date"><?php echo $date; ?></p> </a> <?php endforeach; wp_reset_postdata(); ?> |
まずはじめに、fetch_feed()でURLで指定したRSSを読みにいってフィードを取得しています。
次は$maxitemsに、フィードを取得する件数を設定しています。今回は3件だけ投稿を取得するようにしています。
あとはforeach文を使って$rss_itemsに入っている記事データを使って次のようなことを行っています。
- パーマリンクの設定
- 1つ目の画像を取得してサムネイルとして表示
- 記事タイトルの表示
- 投稿日の表示
だいたいこのあたりがよく使う記事データになると思います。
実際にWebサイトで使用するHTMLに合わせて加工してみてください。それではまた!
お見積りは無料です。ホームページ制作やWebマーケティングに関するお悩みをお聞かせください。













