我們之前寫過一段代碼,可以讓您顯示 twitter 關注者數量,該代碼由Rarst貢獻。在本文中,我們將分享一個更高級、更優雅的代碼,它可以讓您在 wordpress 中顯示 Twitter 關注者數量。這個腳本也是由拉斯特貢獻的。
特征
此功能不限于關注者數量。它可以獲取Twitter users/show API 方法返回的任何非嵌套值。
它有兩級緩存:
- 查詢的值使用 WP 選項以數組形式存儲在數據庫中,持續 $interval 秒;
- API 響應存儲在內存中,因此您可以查詢任意數量的字段,而無需生成多個 API 請求。
這應該可以安全地同時用于乘法值和乘法用戶,而不必擔心耗盡 API 限制。
教程
首先打開主題的functions.php文件并添加以下代碼:
functionrarst_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 updateif( !isset( $cache[$username][$field] ) ) {$cache[$username][$field] = NULL;$cache[$username]['lastcheck'] = 0;}// if outdatedif( $cache[$username]['lastcheck'] < (time()-$interval) ) {// holds decoded JSON data in memorystatic$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 requestedforeach($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 中一鍵使用
用法
粘貼該函數后,您現在可以在任何您喜歡的 WordPress 模板文件中使用該代碼。只需粘貼以下代碼:
echorarst_twitter_user('wpbeginner', 'name').' has '.rarst_twitter_user('wpbeginner', 'followers_count').' followers after '.rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
由
在 WordPress 中一鍵使用
上面的代碼將顯示如下內容:
WPBeginner 在 1300 次更新后有 5846 名關注者。