Ошибка get_item_quantity () при извлечении фида

Я использую этот скрипт в двух местах на одной странице для вывода некоторых RSS-каналов:

<?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed('https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=BarackObama'); $maxitems = $rss->get_item_quantity(3); $rss_items = $rss->get_items(0, $maxitems); ?> <?php if ($maxitems == 0) echo '<p class="alert">No activity to display.</p>'; ?> <ul> <?php if (!$maxitems == 0) foreach ( $rss_items as $item ) : ?> <li> <a href="<?php echo $item->get_permalink(); ?>"> <?php echo $item->get_title(); ?> <time datetime="<?php echo $item->get_local_date('%Y-%m-%d %H:%M'); ?>" class="timestamp"> <?php echo $item->get_local_date('%A %d %b %H:%M'); ?> </time> </a> </li> <?php endforeach; ?> </ul> 

Я вручную устанавливаю время работы кеша в моих functions.php до двух часов:

 function filter_handler( $seconds ) { return 7200; } add_filter( 'wp_feed_cache_transient_lifetime', 'filter_handler' ); 

Несколько раз в день канал прерывается и отображает эту ошибку:

Fatal error: Call to undefined method WP_Error::get_item_quantity() in /public_html/wp-content/themes/twentyeleven/home-page.php on line 100

Похоже, что выбор WordPress этого тэга Twitter иногда терпит неудачу, тогда ошибка выводится в течение 2 часов, пока кеш не будет очищен.

Как я могу обойти это?

Solutions Collecting From Web of "Ошибка get_item_quantity () при извлечении фида"

Это происходит, потому что Twitter остановил API v1 . Чтобы обойти WP_Error в вашем коде:

 // functions.php function fetch_twitter() { $rss = fetch_feed('https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=BarackObama'); if ( is_wp_error( $rss ) ) return; // continue in your function $maxitems = $rss->get_item_quantity(3); } // template fetch_twitter(); 

Не поможет в вашем случае. Переключитесь на новый API.