現在使っているWordpressに別のWordpress、またブログの記事をRSSで取得して表示させる方法です。
WordPressではfetch_feedという関数があるのでこれを使います。
表示させたい所に下記を記述してください。
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss_url = array(
'RSSのURL'
);
$rss = fetch_feed($rss_url);
if (!is_wp_error($rss)){
$maxitems = $rss->get_item_quantity(4); // 表示件数
$rss_items = $rss->get_items(0, $maxitems);
}
foreach($rss_items as $key => $value){
// 最初の画像をサムネイルとして取り出す
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $value->get_content(), $matches ) ) {
$first_img = $matches[1];
}
// 本文の最初の100文字だけ抜粋する
$content = $value->get_content();
$content = mb_substr( strip_tags( $content ),0,100 );
echo '
<li style="margin-bottom: 20px;">
<img src="'.esc_attr( $first_img ).'" width="100" height="100"> // サムネイル
<a href="'.$value->get_permalink().'" target="_blank">'.$value->get_title().'</a> // タイトルとリンク
<p>'.$value->get_date( 'Y.m.d' ).'</p> // 日付
<p>'.$content.'...</p> // 抜粋
</li>
';
}
?>
get_item_quantityで取得する記事の数を変更できます。
$value->get_contentをそのまま書くと記事の本文がすべて表示されるので、mb_substrで最初の100文字だけ抜粋しています。
100の部分を変えることで文字数を変更できます。


