「Warning:A non-numeric value encountered in …」とエラー文がでた時の対処方法

この記事には広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

情報が古いです。

こちらは、2017年の情報なので、ファイル名や該当箇所が違う場合があります。

スポンサーリンク

JUGEMブログを表示させるためのコード

JUGEMブログを、↓のようなコードで最新のブログタイトルを引っ張って、ワードプレスに表示させています。

PHP
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('http://naissanin.jugem.jp/?mode=rss'); // RSSのURLを指定
if (!is_wp_error( $rss ) ) :
	$maxitems = $rss->get_item_quantity(5); // 表示する記事の最大件数
	$rss_items = $rss->get_items(0, $maxitems); 
endif;
?>
<ul>
<?php
if ($maxitems == 0): echo '<li>表示するものががありません</li>';
else :
date_default_timezone_set('Asia/Tokyo');
foreach ( $rss_items as $item ) : ?>
<li style="border-bottom: 1px solid #ccc; padding:5px;">
<a href="<?php echo $item->get_permalink(); ?>" rel="bookmark">
 	<span class="blog-title"><?php echo $item->get_title(); ?></span></a>
    <span class="entry-date"><?php echo $item->get_date('Y/n/j'); ?></span>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>

PHPをバージョンアップしたらエラーがでた!

データベースのPHPを7.1にバージョンアップしたら、↓のようにエラー文がぁーーーー!!ΣΣ(゚д゚lll)ガガーン!!

Warning:A non-numeric value encountered in /home//www/*/wp-includes/SimplePie/Parse/Date.php on line 694

※「***」は、個人的なアカウント名やフォルダ名なので「***」にしてます。

このエラー文で検索をかけてみたら、↓の記事を見つけました。

これはPHP7.1からの変更点で、数値ではない値で演算を行うと警告が表示されてしまうみたいですね。「media.php」の647行目を見てみると、以下のような演算が行われています。おそらく「$expected_size」が文字列として扱われてしまっているので「(int)$expected_size」というように、型を指定してあげます。これでエラー(警告)は表示されなくなりました。

きっと、↑コレだ!と思い、同じ対処方法を施してみることに。

スポンサーリンク

エラー文がでた時の対処方法

①該当ファイルをダウンロード

エラーが出てるのは、「wp-includes」フォルダの中の「SimplePie」フォルダの中の「Parse」フォルダの中のDate.phpの694行目ってことなので、この行を修正するために、FTPでサーバーに接続して、該当ファイルDate.phpをダウンロード。

②テキストエディタで開く

ダウンロードしてきたDate.phpを、TeraPadというテキストエディターで開き、694行目をチェック!

文字コードが「UTF-8」で修正・保存しないと文字化けするので、メモ帳とかで開かないように。メモ帳だと文字コードが修正・変更できないし、行数がでません。

テキストエディタを持ってない人は、ココ(TeraPadー窓の杜)からダウンロードしましょう。

③該当箇所に、(int)または(float)を追加

文字列として扱われてしまっていそうな箇所に、↓のように「int型」(整数)指定。

今回の場合は、メディア(写真)のサイズなので、「int型」(整数)で良いと思うのですが、「(float)」を指定しても警告は表示されなくなりました。間違えている場合には、ご指摘していただけますと幸いでございます。

とあったので、「(float)」の指定をしてみてもOKでした。

これでエラーが解消され、ちゃんとRSSが表示されるようになりました!ヽ(=´▽`=)ノ

注意

本体をバージョンアップしたら、この修正も上書きされますので、エラーが表示されるようになります。また、上記内容を対処して下さい。

スポンサーリンク