WP RSS Aggregator 4.14のwarningについて(Invalid argument supplied for foreach)

2019/07/16WordPress

WP RSS Aggregator 4.14 には重大な問題がいくつか発見されています。このバージョンが特に必要では無い場合、以前のバージョンに戻すか4.15以降に更新した方が良さそうです。



本サイトでは、沖縄の公共交通関連の情報※1を収集するために WP RSS Aggregator というプラグインを使っている。

※1 沖縄県内公共交通機関記事新着 | ず@沖縄

このプラグインに、RSSに含まれている画像も収集するという余計な機能が追加された結果、下記のwarningが出るようになってしまった。cronで叩かれるたびにエラーメールが飛んできて大変うざったい。

PHP Warning: Invalid argument supplied for foreach() in xxx/wp-content/plugins/wp-rss-aggregator/includes/feed-importing-images.php on line 460

対処方法

後述するように、イメージの取り込み機能は無い方が良さそうなので、エラーがでている処理を使わないようにした。

— old/wp-content/plugins/wp-rss-aggregator/includes/feed-importing-images.php 2019-07-10 08:16:51.118049396 +0900
+++ new/wp-content/plugins/wp-rss-aggregator/includes/feed-importing-images.php 2019-07-15 23:25:21.872708297 +0900
@@ -454,6 +454,7 @@
*/
function wpra_get_item_itunes_images($item)
{
+ return [];
$tags = $item->get_item_tags(Wpra_Rss_Namespace::ITUNES,’image’);

$images = [];

取り込み機能削除はこれでいいのだろうか?

— old/wp-content/plugins/wp-rss-aggregator/includes/feed-importing-images.php 2019-07-15 23:59:03.621635480 +0900
+++ new/wp-content/plugins/wp-rss-aggregator/includes/feed-importing-images.php 2019-07-16 00:13:04.759438562 +0900
@@ -9,7 +9,7 @@
}

add_action('wprss_items_create_post_meta’, 'wpra_detect_item_type’, 10, 3);
-add_action('wprss_items_create_post_meta’, 'wpra_import_item_images’, 11, 3);
+//add_action('wprss_items_create_post_meta’, 'wpra_import_item_images’, 11, 3);
add_filter('wprss_ftp_post_meta’, function ($meta, $id, $source, $item) {
wpra_detect_item_type($id, $item, $source);


画像収集の問題点

WP RSS Aggregator – WordPress plugin | WordPress.orgのChangeLogによると、以下の機能が追加されている。このうちの “Image URLs are detected and saved in feed item meta” が問題の機能。

Added
* YouTube channel URLs are now supported.
* Items imported from YouTube are detected and their embed links are saved.
* Embedded YouTube videos can now be shown in a lightbox.
* New option to enable or disable the plugin’s logging.
* New option to set the log age, in days, for daily truncation.
* Image URLs are detected and saved in feed item meta, to be used by templates that can show images.
* Feed item excerpts are now imported, to be used by templates that can show excerpts.
* Activating or pausing feed sources from the Feed Sources page is now asynchronous.
* Deleting feed items from the Feed Sources page is now asynchronous.
* New plugin-wide error handling to prevent site locks, with the option to deactivate the plugin and its addons.
* Feed sources that are missing their respective cron are detected and fixed while on the Feed Sources page.
* Added tooltips to various links and controls in the feed source list page.
* Import errors are now asynchronously added to the error icon in the feed sources list page.



恐ろしいことに収集した画像はギャラリーに保存されるらしく、大量のスペースを喰われたという苦情もサポートフォーラムに上がっている。なんでこんな機能を追加したんだろ。


他のプラグイン探してます

WP RSS Aggregator は機能豊富な上に使いやすい良いプラグインなのですが、私にとっては不要な機能も多くなってきて重さが気になるようになってきました。
もっと軽いプラグイン欲しい。

追記

画像取り込みがデフォルトでONになってるのはバグだったようです。しかしこの機能は、もっと練り直さないと使い物にならん気がする。

4.15 (2019-07-16)

Added
– New error handling for catchable PHP7 Throwable errors.
– New option to enable feed caching for better performance.
– New option to import source name and URL for each item individually.
– The custom feed now includes source info for every item.

Changed
– Improved some exception messages to better indicate the cause of certain problems.
– Re-organized settings into multiple tabs.
– Added the current site URL to the custom feed URL option’s label.

Fixed
– Feed sources had image importing wrongly enabled by default.
– Downloading the debug log triggered an error.
– The custom feed self URL ignored the settings and was incorrect.
– Items in the custom feed had a missing rel attribute for their element.
– Fixed placement of WordPress notices on the Templates List and Edit page.
– Fixed WordPress notices disappearing after moving between Templates list and edit page.

WordPress

Posted by ず@沖縄