昨日のRSSの呼び出し対応を行った後、
「実はもう一個呼び出したいブログがあるんだけど大丈夫?」
とご相談を頂きました笑。
RSSの呼び出しについては
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<ul class="date"> <?php include_once( ABSPATH . WPINC . '/feed.php' ); $feeduri = 'https://www.xxx.com/?feed=rss2'; $rss = fetch_feed($feeduri); if (!is_wp_error($rss)) { $maxitems = $rss->get_item_quantity(20); $rss_items = $rss->get_items( 0, $maxitems ); } foreach ( $rss_items as $item ) : ?> <li><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 $item_date = $item->get_date(); $date = date('Y/m/d',strtotime( $item_date )); ?> <span class="dateTime"><?php echo $date; ?></span> <?php $title = $item->get_title(); if(mb_strlen( $title ) > 40 ): ?> <span class="news_title"><?php echo mb_substr( $title,0,40 );?>...</span> <?php else : ?> <span class="news_title"><?php echo $title ;?></span> <?php endif; ?> </a></li> <?php endforeach; wp_reset_postdata(); ?> </ul> |
上記のような形で実装していたのですが、
こちらの4行目のfeeduriをarrayで読み込むようにして
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<ul class="date"> <?php include_once( ABSPATH . WPINC . '/feed.php' ); $feeduri = array( 'https://www.xxx.com/?feed=rss2' , 'https://www.yyy.com/?feed=rss2' , 'https://www.zzz.com/?feed=rss2'); $rss = fetch_feed($feeduri); if (!is_wp_error($rss)) { $maxitems = $rss->get_item_quantity(20); $rss_items = $rss->get_items( 0, $maxitems ); } foreach ( $rss_items as $item ) : ?> <li><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 $item_date = $item->get_date(); $date = date('Y/m/d',strtotime( $item_date )); ?> <span class="dateTime"><?php echo $date; ?></span> <?php $title = $item->get_title(); if(mb_strlen( $title ) > 40 ): ?> <span class="news_title"><?php echo mb_substr( $title,0,40 );?>...</span> <?php else : ?> <span class="news_title"><?php echo $title ;?></span> <?php endif; ?> </a></li> <?php endforeach; wp_reset_postdata(); ?> </ul> |
こんな感じで対応しました。
飲食店で各店がブログを書いたりしているときなど、
オフィシャルサイトでこういう実装をすると、各店の雰囲気が伝わって面白そうですね。
上記で表示されない場合、RSSフィードの1行目が空行になっていることが原因の場合が多いので、その際はこちらの記事をご覧ください笑
是非ご参考にしてみてください。
それでは。