質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

575閲覧

複数の外部RSS取得時にエラーがでた場合、スキップしたい

legant

総合スコア8

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/06/17 00:45

###前提・実現したいこと
現在、レンタルサーバーを借りてWordPressでブログを運営しています。
複数の外部RSSを取得、各サイト1件ずつ新着順にソートして表示しています。

複数の外部RSS取得時にエラーが出た場合スキップし、他のRSSを表示できるようにしたいです。

###発生している問題・エラーメッセージ
ブログ上で複数の外部RSSを取得し表示しているのですが、取得しているRSS数が多いため一つでもRSSエラーがでると表示が”no articles”となり、エラーがないRSSも表示できなくなってしまいます。
1件ずつチェックし、問題のあるRSSを削除すれば修正できるのはわかっていますが、RSS数が多いのと常にブログをチェックできるわけではないので、エラーがでた場合スキップし、他のRSSを表示できるようにしたいです。

###該当のソースコード

<?php // SimplePieの読み込み include_once(ABSPATH . WPINC . '/feed.php'); // feedの取得(複数指定可) $rss = fetch_feed(array( 'RSS1', 'RSS2', 'RSS3', 'RSS4' )); if (!is_wp_error( $rss ) ) { $rss->set_item_limit(1); // RSS1つに対して何件表示 $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(0); // 全ての表示件数 $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); } echo '<ul>'; if ($maxitems == 0) { // データがないときの処理 echo '<li>no articles</li>'; } else { foreach ( $rss_items as $item ) { echo '<li><a href="'. $item->get_permalink() .'">'. $item->get_title() .'</a></li>'; } } echo '</ul>'; ?>

###補足情報(言語/FW/ツール等のバージョンなど)
WordPress: Ver4.8
PHP: Ver7.1
Server: mixhost

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

恐らくitemが空かエラーだと思いますので、戻り値で分岐したらよいのではないでしょうか?

PHP

1 2(省略) 3 4foreach ( $rss_items as $item ) { 5 if ( !empty($item) ) { //追加 6 echo '<li><a href="'. $item->get_permalink() .'">'. $item->get_title() .'</a></li>'; 7 } //追加 8} 9

投稿2017/06/18 09:17

madone99

総合スコア1855

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

fetch_feed をRSSごとにおこなって、結果を統合してソートすれば出来ると思います。

投稿2017/06/17 00:56

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

legant

2017/06/17 10:11

回答ありがとうございます。 色々調べて試行錯誤しているのですが、上手くできません。 お手数ですが、コードもしくは参考サイト等を教えていただけないでしょうか。 宜しくお願いします。
kei344

2017/06/18 06:42

> 試行錯誤 試されたコードを質問文に追記されてはいかがでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問