🗒️

【PHP】WordPressでRSSフィードを取得する

2022/03/11に公開

実現したいこと

WordPress内のページでRSSフィードを取得する。
対象のRSSフィードはWordPressの投稿フィード。

WordPressのフィードについて

WordPressは初期状態でいろいろなフィードを生成してくれています。
基本はサイトURLに/feed/を加えてアクセスすると確認できると思います。

http://example.com/feed/

他にもカテゴリ別の記事を取得したい場合は...

http://example.com/category/hogehoge/feed/

簡単すぎ。感謝!!!!!!!!!

コード

<?php
	include_once( ABSPATH . WPINC . '/feed.php' );
        $rss = fetch_feed( 'feedのURL' );
        if ( !is_wp_error( $rss ) ) {
        $maxitems = $rss->get_item_quantity( 5 ); //最新5件だけ取得する
        $rss_items = $rss->get_items( 0, $maxitems ); // 0件から始めて指定した件数までの配列を生成
        }
        ?>
        <?php if ( !empty( $maxitems ) ) : ?>
		<?php if ($maxitems == 0) echo '<p>投稿がありません</p>';
		else foreach ( $rss_items as $item ) : ?>
		<div class="item">
			<div class="item__category">
				//投稿カテゴリーを取得
				<?php
                                $categorys = $item->get_categories();
                                foreach ( $categorys as $category ) {
                                echo '<span>'.esc_html( $category->get_label() ).'</span>';
				}
                                ?>
                         </div>
                         <div class="item__date">
				 //投稿日時を取得
				 <?php echo $item->get_date('Y/m/d'); ?>
                         </div>
                         <div class="item__title">
				 //投稿記事タイトルとURLを取得
				 <a href="<?php echo $item->get_permalink(); ?>">
                                    <?php echo $item->get_title();?>
				 </a>
                         </div>
                  </div>
		<?php endforeach; ?>
        <?php endif; ?>

参考記事

https://ja.wordpress.org/support/article/wordpress-feeds/

Discussion