WordPressでTwitterフォロワー数を表示する方法

以前、Rarst氏が提供した、WordPressでTwitterフォロワー数をテキストで表示できるコードについて記事にしました。この記事では、WordPressでTwitterフォロワー数を表示できる、より高度で洗練されたコードを共有します。このスクリプトもRarst氏の提供によるものです。

機能

この機能はフォロワー数に限定されません。Twitter users/show APIメソッドによって返されるネストされていない値であれば、どのような値でも取得できます。

キャッシュは2レベルあります。

  • クエリされた値は、$interval秒間、WPオプションを使用してデータベースに配列として保存されます。
  • API応答はメモリに保存されるため、複数のAPIリクエストを生成することなく、任意の数のフィールドをクエリできます。

これは、API制限を使い果たす心配なく、複数の値と複数のユーザーを同時に安全に使用できるはずです。

チュートリアル

まず、テーマのfunctions.phpファイルを開き、次のコードを追加します。

    function rarst_twitter_user( $username, $field, $display = false ) {
    $interval = 3600;
    $cache = get_option('rarst_twitter_user');
    $url = 'http://api.twitter.com/1/users/show.json?screen_name='.urlencode($username);

    if ( false == $cache )
    $cache = array();

    // if first time request add placeholder and force update
    if ( !isset( $cache[$username][$field] ) ) {
    $cache[$username][$field] = NULL;
    $cache[$username]['lastcheck'] = 0;
    }

    // if outdated
    if( $cache[$username]['lastcheck'] < (time()-$interval) ) {

    // holds decoded JSON data in memory
    static $memorycache;

    if ( isset($memorycache[$username]) ) {
    $data = $memorycache[$username];
    }
    else {
    $result = wp_remote_retrieve_body(wp_remote_request($url));
    $data = json_decode( $result );
    if ( is_object($data) )
    $memorycache[$username] = $data;
    }

    if ( is_object($data) ) {
    // update all fields, known to be requested
    foreach ($cache[$username] as $key => $value)
    if( isset($data->$key) )
    $cache[$username][$key] = $data->$key;

    $cache[$username]['lastcheck'] = time();
    }
    else {
    $cache[$username]['lastcheck'] = time()+60;
    }

    update_option( 'rarst_twitter_user', $cache );
    }

    if ( false != $display )
    echo $cache[$username][$field];
    return $cache[$username][$field];
    }

使用方法

関数を貼り付けたら、WordPressの任意のテンプレートファイルでコードを使用できます。以下のコードを貼り付けるだけです。

echo rarst_twitter_user('wpbeginner', 'name').' has '.
rarst_twitter_user('wpbeginner', 'followers_count').' followers after '.
rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';

上記のコードは次のように表示されます。

WPBeginnerは1300回の更新を経て5846人のフォロワーを獲得しました。

出典: Rarst

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

10 CommentsLeave a Reply

  1. 誰か、自分のTwitterユーザー名をどこに入力したか教えてください。どこにも見当たらないんです…それに、どうやっても機能しないんです…どんなにやっても…ユーザー名が出てこないんです。今、完全に基本的な状態にしておいても、ユーザー名に関する反応は全くありません…表示されるのは「更新後にフォロワーあり」…
     
    それだけです…それ以外は何も…

  2. これは素晴らしいコードです。テキストに埋め込むための関数を作成する可能性はありますか(のようなもの)。downhill_mc

    • 修正ありがとうございます。皆さんが利用できるように素晴らしいスニペットを提供していただき、本当に感謝しています。あなたの努力は本当に高く評価されています。

      管理者

  3. Glad you found it useful. :) Old snippet still works but it got kinda outdated and spread around a lot – it was getting hard to answer questions and correct outdated parts all the time.

    こちらは少し大きくなりますが、より多くのデータを表示したり、同時に異なるユーザー名を表示したりするための機能が大幅に拡張されています。

    より適切に維持するつもりですので、私のブログのページでフィードバックや提案を歓迎します。

コメントを残す

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。