🗒️
【PHP】WordPressでRSSフィードを取得する
実現したいこと
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; ?>
参考記事
Discussion