最近になってショートコードの呼び出しに「Warning: Undefined variable」のエラーが発生するようになりました。ショートコードは、外部サイトrssの呼び出しに使用しています。
エラー内容
Warning: Undefined variable $maxitems in hoge.php
「Warning: Undefined variable」は、指定している変数が定義されていない場合に発生するエラーだそうですが、毎回エラーになるわけではなくリロードすると改善(正常に表示)されることが多いため、PHPの記述が問題なのかがわからず、そもそも下記PHPに修正すべき場所がわからない状態です。
下記に誤りがある場合、正しいPHPの記述を具体的に教えてください。
phpの記述は下記になります。
<div class="hoge01">
<?php include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed(array(
'https://example.com/feed/atom/'
));
if (!is_wp_error( $rss ) ) :
$rss->set_cache_duration(1800);
$rss->init();
$maxitems = $rss->get_item_quantity(4);
$rss_items = $rss->get_items(0, $maxitems);
date_default_timezone_set('Asia/Tokyo');
endif;
?>
<?php if ($maxitems == 0) echo 'リロードしてください.';
else
foreach ( $rss_items as $item ) : ?>
<div class="hoge02">
<a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $matches ) ) {
$first_img = $matches[1];
}
?>
<?php if ( !empty( $first_img ) ) : ?><img src="<?php echo esc_attr( $first_img ); ?>" alt="" ></a>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
<br clear="all">
<a href="ooo" target="_blank">ooo</a>の更新RSS
Warning: Undefined variableのエラーは毎回ではなく、時々(1/3程度の確率で)表示されます。
最近まではエラーになっておらず、検索でよくある原因に挙げられているPHPのバージョンは変更していません。複数のサーバー(サイト)で同じ状態になっています。
最近行った更新は「WordPress6.7への更新」と「W3 Total Cacheの更新」と「その他プラグインの更新」くらいしか思いつきません。
WordPress6.7をダウングレードしてみたり、W3 Total Cacheを一時的に停止してみても改善されません。
現在は、「php.ini」によりエラー自体を表示しないようにしているのですが、根本的な解決をしたいと思っています。
よろしくお願いします。