プラグインなしでTwitterフィードを表示する方法を実装しました。それは数週間(何ヶ月も、別のサイトでも)動作しましたが、今私には問題を与えています。これがエラーです。
致命的なエラー:27行目の... home.phpの未定義のメソッドWP_Error :: get_item_quantity()を呼び出す
27行目:$ maxitems = $ rss-> get_item_quantity(3);
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('https://api.Twitter.com/1/statuses/user_timeline.rss?screen_name=urbanpalatela');
$maxitems = $rss->get_item_quantity(3);
$rss_items = $rss->get_items(0, $maxitems);
?>
<ul>
<?php if ($maxitems == 0) echo '<li>No items.</li>';
else
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) : ?>
<li>
<a href='<?php echo $item->get_permalink(); ?>'>
<?php echo str_replace('UrbanPalateLA: ', '•', $item->get_title()); ?>
</a>
</li>
<?php endforeach; ?>
</ul>
エラーの原因となる可能性がある考えはありますか?
私はあなたがおそらく最初の実行でWP_Errorを受けていると言うでしょう。
$maxitems
行と$rss_items
行の周りに、以下を追加します。
if( ! is_wp_error( $rss ) ) {
$maxitems = $rss->get_item_quantity(3);
$rss_items = $rss->get_items(0, $maxitems);
}
TwitterのURLが有効ではないようです。サードパーティに依存しているため、このエラーを2倍に防ぐことができます。
$maxitems
を使用する前にフィードが空かどうかを確認してください。
例えば:
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('https://api.Twitter.com/1/statuses/....');
if ($rss->get_item_quanity != 0) {
$maxitems = $rss->get_item_quantity(3);
//rest of your code..
} else {
echo 'No feed available'; }
編集:Ericの例は、おそらくif (!is_wp_error( $rss ) )
を使ってWPで処理されるので、おそらくより良いです。
第二にあなたのTwitterのURLは何も返されていない、したがってエラー、これはAPIが変更されたため、おそらくあなたはTwitterのドキュメントを参照する必要があります、 https://dev.Twitter.com/docs/api/1.1/ get/status/user_timeline