Устранение неполадок с fetch_feed и SimplePie

29 мар. 2011 г., 20:31:57
Просмотры: 2.97K
Голосов: 3

У меня есть базовое решение с использованием 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>
0
Все ответы на вопрос 2
1

добавьте это в вашу ленту

    $rss = fetch_feed( $url );
    if ( is_wp_error( $rss ) ) {
       echo $rss->get_error_message();  <---это
    } else {
   // делайте свои действия здесь
}

Также рекомендую установить расширения для панели отладки, например "debug-bar-extender".

29 мар. 2011 г. 21:48:46
Комментарии

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

Sampson Sampson
29 мар. 2011 г. 22:44:06
0

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

Используйте wp-includes/rss.php вместо этого

5 июл. 2016 г. 18:54:10