Устранение неполадок с fetch_feed и SimplePie
У меня есть базовое решение с использованием fetch_feed()
и SimplePie для получения RSS-элементов, которое работает на локальном сервере, но по какой-то причине is_wp_error()
постоянно возвращает true
на рабочем сервере. Есть ли способ получить конкретную информацию о природе ошибки, чтобы найти решение для рабочего сервера?
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed( '[rss feed removed from example]' );
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(5);
$rss_items = $rss->get_items(0, $maxitems);
$isc = 'http://dtd.interspire.com/rss/isc-1.0.dtd';
endif;
?>
<ul class="featured-products">
<?php if ( $maxitems == 0) : ?>
<li>Нет элементов.</li>
<?php else : ?>
<?php foreach ( $rss_items as $item ) :
$image = $item->get_item_tags( $isc, 'thumb'); ?>
<li>...</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>

Доменное имя, к которому я пытался получить доступ, является алиасом другого доменного имени. Получение фида с конечного доменного имени успешно вернуло результаты. Ваш ответ помог мне прийти к этому осознанию. Также, следуя вашим рекомендациям, я обнаружил Core Control, что позволило мне отслеживать HTTP-запросы с моего сервера и их статусы.

Это может быть связано с устареванием файла rss-functions.php
. Проверьте эту ошибку, установив wp-errors в конфигурационном файле вашего рабочего сайта в значение true. Тогда вы сможете увидеть проблему.
Не забудьте быстро вернуть их в значение false после проверки.
Используйте wp-includes/rss.php
вместо этого
